Cow — 복제-시-쓰기(clone-on-write) 스마트 포인터
Cow — 복제-시-쓰기(clone-on-write) 스마트 포인터
Cow(Copy-On-Write)는 빌려온 값(Borrowed) 또는 소유한 값(Owned) 중 하나를 들 수 있는 스마트 포인터예요. 실제로 수정할 때만 복제가 일어나요.
출처: Rust 공식 문서
본문
pub enum Cow<'a, B>
where B: 'a + ToOwned + ?Sized,
{
Borrowed(&'a B),
Owned(<B as ToOwned>::Owned),
}
예를 들어 Cow<'a, str>은 &'a str 또는 String을 담을 수 있어요. 읽기만 하면 복사가 없고, .to_mut()로 수정하려 할 때만 소유 버전으로 복제해요. "대부분 읽기 전용인 문자열"을 효율적으로 다룰 때 유용해요.