pub use capsec_core::cap::{Cap, SendCap};
pub use capsec_core::error::CapSecError;
pub use capsec_core::has::Has;
pub use capsec_core::permission::{
Ambient, EnvRead, EnvWrite, FsAll, FsRead, FsWrite, NetAll, NetBind, NetConnect, Permission,
Spawn, Subsumes,
};
pub use capsec_core::root::{CapRoot, root, try_root};
#[cfg(debug_assertions)]
pub use capsec_core::root::test_root;
pub use capsec_core::attenuate::{Attenuated, DirScope, HostScope, Scope};
pub use capsec_core::cap_provider::CapProvider;
pub use capsec_core::runtime::{Revoker, RuntimeCap, RuntimeSendCap, TimedCap, TimedSendCap};
pub use capsec_core::prescript::{
ApproverA, ApproverB, DualKeyCap, DualKeySendCap, LogEntry, LoggedCap, LoggedSendCap,
};
pub fn run<T>(f: impl FnOnce(CapRoot) -> T) -> T {
let root = root();
f(root)
}
pub use capsec_macro::{context, deny, main, permission, requires};
pub mod fs {
pub use capsec_std::file::{ReadFile, WriteFile};
pub use capsec_std::fs::*;
}
pub mod net {
pub use capsec_std::net::*;
}
pub mod env {
pub use capsec_std::env::*;
}
pub mod process {
pub use capsec_std::process::*;
}
#[cfg(feature = "tokio")]
pub mod tokio {
pub mod task {
pub use capsec_tokio::task::*;
}
pub mod fs {
pub use capsec_tokio::file::{AsyncReadFile, AsyncWriteFile};
pub use capsec_tokio::fs::*;
}
pub mod net {
pub use capsec_tokio::net::*;
}
pub mod process {
pub use capsec_tokio::process::*;
}
}
pub mod prelude {
pub use crate::{
Ambient, ApproverA, ApproverB, Attenuated, Cap, CapProvider, CapRoot, CapSecError,
DirScope, DualKeyCap, DualKeySendCap, EnvRead, EnvWrite, FsAll, FsRead, FsWrite, Has,
HostScope, LoggedCap, LoggedSendCap, NetAll, NetBind, NetConnect, Permission, Revoker,
RuntimeCap, RuntimeSendCap, Scope, SendCap, Spawn, Subsumes, TimedCap, TimedSendCap,
};
}