trussed_core/client/
ui.rs1use core::time::Duration;
2
3use super::{ClientResult, PollClient};
4use crate::{
5 api::{reply, request},
6 types::consent::Level,
7};
8
9pub trait UiClient: PollClient {
11 fn confirm_user_present(
12 &mut self,
13 timeout_milliseconds: u32,
14 ) -> ClientResult<'_, reply::RequestUserConsent, Self> {
15 self.confirm_user_present_with_level(Level::Normal, timeout_milliseconds)
16 }
17
18 fn confirm_user_present_with_level(
22 &mut self,
23 level: Level,
24 timeout_milliseconds: u32,
25 ) -> ClientResult<'_, reply::RequestUserConsent, Self> {
26 self.request(request::RequestUserConsent {
27 level,
28 timeout_milliseconds,
29 })
30 }
31
32 fn wink(&mut self, duration: Duration) -> ClientResult<'_, reply::Wink, Self> {
33 self.request(request::Wink { duration })
34 }
35
36 fn set_custom_status(&mut self, status: u8) -> ClientResult<'_, reply::SetCustomStatus, Self> {
37 self.request(request::SetCustomStatus { status })
38 }
39}