Expand description
Progress: the opaque token a request carries, and the cursor that guards it.
§The token is the peer’s, not ours
The schema is unambiguous — ProgressToken = string | number in every
revision from 2024-11-05 to 2026-07-28, and the value is described as
opaque. This crate therefore never interprets it, never derives one, and
never substitutes a value of its own: it is carried through the request, out
onto each notification, and matched back. A token this side invented would
be a token the peer cannot correlate, which is the one outcome the mechanism
exists to prevent.
§Why the cursor exists
The specification says progress “should increase every time progress is made, even if the total is unknown”. That is a SHOULD, so this side does not reject the request for violating it — it declines to emit the update. A peer that renders progress as a bar would otherwise be able to walk backwards because a handler recomputed a percentage, and the notification is out-of-band, so nothing upstream would notice.
Structs§
- Progress
Cursor - The furthest progress reported for one request so far.
- Progress
Update - One progress update to put on the wire.
Enums§
- Progress
Token - The opaque handle a request carries to ask for progress updates.