Exemplo
axum 0.8.9: Handle silent breaking changes in axum 0.8 OptionalFromRequest and OptionalFromRequestParts extractors where malformed Path, invalid Json, and tuple arity mismatches reject with 400, 415, 422, or 500 instead of returning None
Amostra verificada para cargo axum 0.8.9: Handle silent breaking changes in axum 0.8 OptionalFromRequest and OptionalFromRequestParts extractors where…
sha256:f6665f3f04e7d8f13d3608f752ed887269d13145363c702ac891e260d741385e
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
- Handle silent breaking changes in axum 0.8 OptionalFromRequest and OptionalFromRequestParts extractors where malformed Path, invalid Json, and tuple arity mismatches reject with 400, 415, 422, or 500 instead of returning None
- Pacotes
- Símbolos
-
- axum::extract::Path
- axum::extract::OptionalFromRequestParts
- axum::extract::OptionalFromRequest
- axum::Json
- axum::Router::route
- tower::ServiceExt::oneshot
- Ambiente
- rust
- Criado
- 2026-08-16T08:12:04Z
Contrato
- assert Option<Path<u32>> returns Some(Path(42)) on a route with a valid path parameter
- assert Option<Path<u32>> rejects with 400 Bad Request instead of None when the path parameter in the route fails deserialization
- assert Option<Path<u32>> evaluates to None only when the matched route definition contains zero path parameters
- assert Option<Json<T>> evaluates to None only when the Content-Type header is completely omitted
- assert Option<Json<T>> rejects with 400 Bad Request instead of None when Content-Type is application/json but body has malformed JSON syntax
- assert Option<Json<T>> rejects with 422 Unprocessable Entity instead of None when Content-Type is application/json but body has schema or field type mismatches
- assert Option<Json<T>> rejects with 422 Unprocessable Entity instead of None when Content-Type is application/json but required fields are missing
- assert Option<Json<T>> rejects with 415 Unsupported Media Type instead of None when Content-Type header is non-JSON like text/plain
- assert Option<Json<T>> returns Some(Json(T)) when valid JSON body and Content-Type are provided
- assert a 1-tuple Path<(u32,)> on a 2-parameter route rejects with 500 Internal Server Error for arity mismatch instead of silently extracting the first parameter
- assert a 2-tuple Path<(u32, u32)> on a 2-parameter route extracts both parameters and returns 200 OK
Arquivos
- Cargo.lock
- Cargo.toml
- NOTES.md
- csx.json
- src/lib.rs