INNER CODE UNIT · Rust
cancel_permissions
xuzhougeng/wisp-science · crates/wisp-acp/src/lib.rs:768
fn cancel_permissions(pending: &PendingPermissions, session_id: &SessionId) {
let mut pending = pending.lock().expect("pending permissions poisoned");
let request_ids = pending
.iter()
.filter(|(_, permission)| &permission.session_id == session_id)
.map(|(id, _)| id.clone())
.collect::<Vec<_>>();
for request_id in request_ids {
if let Some(permission) = pending.remove(&request_id) {
let _ = permission.reply.send(None);
}
}
}
fn cancel_all_permissions(pending: &PendingPermissions) {
for (_, permission) in pending
.lock()
.expect("pending permissions poisoned")