vtx_sdk/
vtx_permissions.rs1use crate::vtx_error::VtxError;
4use crate::Capabilities;
5
6pub const PERM_BUFFER_CREATE: &str = "buffer:create";
7pub const PERM_FILE_READ: &str = "file:read";
8pub const PERM_FILE_WRITE: &str = "file:write";
9pub const PERM_FFMPEG_EXECUTE: &str = "ffmpeg:execute";
10pub const PERM_SQL_WRITE: &str = "sql:write";
11
12pub trait CapabilitiesExt {
13 fn has_permission(&self, perm: &str) -> bool;
14}
15
16impl CapabilitiesExt for Capabilities {
17 fn has_permission(&self, perm: &str) -> bool {
18 self.permissions.iter().any(|p| p == perm)
19 }
20}
21
22pub trait VtxErrorExt {
23 fn is_permission_denied(&self) -> bool;
24}
25
26impl VtxErrorExt for VtxError {
27 fn is_permission_denied(&self) -> bool {
28 matches!(self, VtxError::PermissionDenied(_))
29 }
30}