FusedIterator
FusedIterator (융합 반복자 트레이트)
소진되었을 때 계속해 None을 반환하는 반복자를 위한 트레이트예요. Iterator::fuse()를 최적화할 수 있게 해 줘요.
출처: Rust 공식 문서
본문
한 번 None을 반환한 융합(fused) 반복자에서 next를 호출하면 다시 None을 반환하는 것이 보장돼요. 이렇게 동작하는 모든 반복자는 이 트레이트를 구현해야 해요. Iterator::fuse()를 최적화할 수 있게 해 주기 때문이에요.
일반적으로, 융합 반복자가 필요하다면 제네릭 경계에 FusedIterator를 쓰지 말고, 반복자에 그냥 Iterator::fuse()를 호출하는 것이 좋아요. 반복자가 이미 융합되어 있다면 추가되는 Fuse 래퍼는 성능 손실 없이 no-op가 돼요.
시그니처는 다음과 같아요.
pub trait FusedIterator: Iterator { }