| ▲ | vatsachak a day ago | |||||||
It's because I use Ticket<T> in situations where I need to remember (force other users to use) a sequence of functions that take arguments not necessarily constructed by others. async fn write_buffer(buf: &mut [u8]) -> Ticket<BufferWritten> //Best that it it's own function for readability async fn complex_counter_logic(ctr: Arc<AtomicUsize>, ticket: Ticket<BufferWritten>) -> Ticket<ComplexCounterLogic> //One could also place all the data in a giant struct and move that across all functions but that eventually leads to struct bloat unless we use an explicit state machine, in which case type state is better | ||||||||
| ▲ | binary132 14 hours ago | parent [-] | |||||||
Why not return a WrittenBuffer<'a>? This can also be used to specify the methodset allowed or required plus any further type transitions out of WrittenBuffer, for example into a new CompressedBuffer, or similar patterns. | ||||||||
| ||||||||