TGViewer
Блог* Блог* @dereference_pointer_there · 1.98K subscribers
Post #11040 968
#prog #rust #article

stable specialization in Rust

TL;DR: Iterator::fuse возвращает адаптер, который на вызовах .next() после возврата None продолжает возвращать None. Однако для типов, реализующих FusedIterator (то есть тех, кто уже обещает данное поведение), этот адаптер не отслеживает вызовы и просто вызывает .next() у нижележащего типа напрямую. Можно реализовать FusedIterator для своего типа, сделав её условной по предикату, который мы хотим проверить специализацией (например, реализует ли тип Send), и в реализации не соблюсти этот контракт. Тогда можно вызвать на этом типе, обёрнутом в Fuse, метод next() два раза, проверить, сколько раз next() был вызван реально, и тем самым получить ответ на предикат.
doc.rust-lang.org Iterator in std::iter - Rust A trait for dealing with iterators.
  • 🤔 6
  • 😭 6
  • 👍 3
  • 😁 2
  • ❤ 1
More from @dereference_pointer_there
  1. Oct 3, 2026Re: I spent $220 on Google app ads and 60% of the installs were robots My favorite story:…
  2. Oct 3, 2026photo post
  3. Oct 3, 2026Source
  4. Oct 3, 2026photo post
  5. Oct 3, 2026#ml #meme
  6. Oct 2, 2026#prog #rust #article Generic Const Args and You Статья о текущем состоянии экспериментальн…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →