AsRef — 저렴한 참조 변환 트레이트
AsRef — 저렴한 참조 변환 트레이트
AsRef<T>는 비용이 거의 들지 않는 참조 변환을 나타내는 트레이트예요. 타입을 그대로 참조로 바꿔 쓸 수 있게 해줘요.
출처: Rust 공식 문서
본문
pub trait AsRef<T>
where T: ?Sized,
{
// Required method
fn as_ref(&self) -> &T;
}
일반적으로 실패할 수 없고(항상 성공), 복사 없이 참조만 돌려줘야 하는 "성공이 보장된" 변환에 사용해요. 예를 들어 String은 AsRef<str>을 구현하고, 경로 관련 함수들이 P: AsRef<Path>를 받아 &str, &Path, String 등 다양한 타입을 받을 수 있게 해줘요.