INNER CODE UNIT · Rust
request
trussed-dev/trussed · src/client.rs:189
fn request<Rq: RequestVariant>(&mut self, req: Rq) -> ClientResult<'_, Rq::Reply, Self> {
// TODO: handle failure
// TODO: fail on pending (non-canceled) request)
if self.pending.is_some() {
return Err(ClientError::Pending);
}
// since no pending, also queue empty
// if !self.ready() {
// return Err(ClientError::Fulle);
// }
// in particular, can unwrap
let request = req.into();
self.pending = Some(u8::from(&request));
self.interchange.request(request).unwrap();
self.syscall.syscall();
Ok(FutureResult::new(self))
}