generated at
iterator adapter
Iterator traitが生やしているmethodのことをこう呼ぶらしい












個々のiterator adapterはiteratorを返すだけで何か処理をするわけではない
チェーンした最後のiteratorに対して next() が呼び出されて初めて処理が実行される
最後に collect() を呼べば、内部で next() も実行される

例えばこのコードを書いても何も起きない
rs
["earth", "water", "air", "fire"].iter().map(|elt| println!("{}", elt));

map
filter
filter_map
削除もできるmap
クロージャの返り値はOption
Noneなら削除
flat_map
scan
hsのscanl
take
take_while
skip
hsのdrop相当
skip_while
hsのdropWhile相当

chain
2つのiteratorを繋げる
enumerate
indexを与える
zip, unzip
hsのzip, unzipと同じ
2つのiteratorを1つのiteratorにする
cycle
Clone traitを実装してる必要がある
hsのcycle相当
いいねmrsekut


cloned
参照を生成するiteratorに対して、生成された参照から値をクローンして生成するiteratorを返す
Clone traitを実装してる必要がある
by_ref
iteratorに対する可変参照を借用する
peekable
fuse
Noneが来たらNoneを返すようにする

inspect
print debugに使ったりする
チェーンの途中経過を見たりする