canic_core/access/
guard.rs1use crate::{
2 Error, ThisError, access::AccessError, dto::state::AppModeView,
3 ops::storage::state::AppStateOps,
4};
5
6#[derive(Debug, ThisError)]
11pub enum GuardError {
12 #[error("application is disabled")]
13 AppDisabled,
14
15 #[error("application is in readonly mode")]
16 AppReadonly,
17}
18
19impl From<GuardError> for Error {
20 fn from(err: GuardError) -> Self {
21 AccessError::GuardError(err).into()
22 }
23}
24
25pub fn guard_app_query() -> Result<(), Error> {
31 match AppStateOps::export_view().mode {
32 AppModeView::Enabled | AppModeView::Readonly => Ok(()),
33 AppModeView::Disabled => Err(GuardError::AppDisabled.into()),
34 }
35}
36
37pub fn guard_app_update() -> Result<(), Error> {
44 match AppStateOps::export_view().mode {
45 AppModeView::Enabled => Ok(()),
46 AppModeView::Readonly => Err(GuardError::AppReadonly.into()),
47 AppModeView::Disabled => Err(GuardError::AppDisabled.into()),
48 }
49}