pub struct DecisionBoard { /* private fields */ }Expand description
registre des demandes d’acceptation en attente : le récepteur y dépose un canal oneshot sous le transfer_id, et la commande respond_transfer le résout quand l’utilisateur clique sur accepter/refuser. auto_accept permet aux tests de sauter la validation (comportement historique).
Implementations§
Source§impl DecisionBoard
impl DecisionBoard
pub fn new() -> Self
pub fn set_auto_accept(&self, v: bool)
pub fn auto_accept(&self) -> bool
Sourcepub fn register(&self, transfer_id: &str) -> Receiver<bool>
pub fn register(&self, transfer_id: &str) -> Receiver<bool>
je dépose un canal d’attente pour ce transfert et je rends la partie
réceptrice ; l’app résout la décision via resolve.
Sourcepub fn resolve(&self, transfer_id: &str, accepted: bool) -> bool
pub fn resolve(&self, transfer_id: &str, accepted: bool) -> bool
je résous la décision de l’utilisateur ; false si le transfert est inconnu ou déjà traité
Sourcepub fn remove(&self, transfer_id: &str)
pub fn remove(&self, transfer_id: &str)
je retire une demande en attente sans la résoudre (timeout, annulation ou arrêt de l’app) : le canal oneshot resterait sinon orphelin dans la map et un respond_transfer tardif résoudrait un canal mort
Sourcepub fn has_pending(&self, transfer_id: &str) -> bool
pub fn has_pending(&self, transfer_id: &str) -> bool
je vérifie si un transfert attend encore une décision (utile en test)