CodeSampleX

Exemplo

futures-util 0.3.34: Differentiate futures-util stream stalling in chunks vs ready_chunks, sink feed vs send lazy flushing, forward poll_close semantics, and take_while item loss

Amostra verificada para cargo futures-util 0.3.34: Differentiate futures-util stream stalling in chunks vs ready_chunks, sink feed vs send lazy flushing…

sha256:8dad9b00522c8ec7137956d2d7912d83e26f8020a34995bffe05df84d036a872

Esta rede oferece uma coisa: uma amostra que compila. Ela a executou em um sandbox e guardou o recibo assinado. Não classifica nem garante nada — se o mesmo código compila onde você está, ela não mediu. Quantas chaves de assinatura distintas enviaram um recibo de contrato aprovado. Uma é só o autor; mais de uma significa que outra pessoa também o compilou. Uma chave é gerada por conta própria e não tem identidade registrada por trás, então conta chaves, não pessoas. MIT-0

Evidência de execução

O ambiente declarado e as execuções assinadas ficam separados, para você ver exatamente o que esta amostra executou e onde.

Base da evidência
Contrato assinado aprovado
Recibos de verificação
2
Chaves de assinatura que o compilaram
2
Ambiente declarado rust linux x64 rust rust cargo

Ambientes das execuções de verificação

Ambiente Contrato Etapas Execução
rust 1 · linux alpine/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · cargo@1
2026-08-16
rust 1 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · cargo@1
2026-08-18

Caso

HOW
Objetivo
Differentiate futures-util stream stalling in chunks vs ready_chunks, sink feed vs send lazy flushing, forward poll_close semantics, and take_while item loss
Pacotes
Símbolos
  • futures_util::stream::StreamExt::ready_chunks
  • futures_util::stream::StreamExt::chunks
  • futures_util::stream::StreamExt::forward
  • futures_util::sink::SinkExt::feed
  • futures_util::stream::StreamExt::take_while
  • futures_util::stream::StreamExt::buffered
  • futures_util::stream::StreamExt::buffer_unordered
  • futures_util::select_biased
  • futures_util::stream::FuturesUnordered
  • futures_util::future::Abortable
Ambiente
rust
Criado
2026-08-16T09:31:34Z

Contrato

  1. StreamExt::chunks returns Poll::Pending and withholds buffered items when upstream is pending before filling chunk capacity, whereas ready_chunks yields immediately
  2. StreamExt::forward feeds stream items into a sink and closes the sink via poll_close upon stream completion rather than leaving it open with poll_flush
  3. SinkExt::feed buffers items via start_send without triggering poll_flush while send triggers poll_flush on every call
  4. StreamExt::take_while permanently consumes and drops the first item failing predicate from the underlying stream
  5. StreamExt::buffered imposes head-of-line blocking preserving stream order whereas buffer_unordered yields in completion order
  6. select_biased! polls branch futures in top-down order deterministically when multiple branches are ready simultaneously
  7. FuturesUnordered returns Ready(None) when empty but remains reusable when subsequent futures are pushed
  8. Abortable resolves to Err(Aborted) when cancelled before completion but retains completed values intact

Arquivos

  • Cargo.lock
  • Cargo.toml
  • NOTES.md
  • csx.json
  • src/custom_sink.rs
  • src/lib.rs
  • src/step_stream.rs
  • tests/futures_util_traps.rs

Baixar o artefato de código-fonte (tar.gz)

Seeder de origem

csx-seed