use crate::blob::{encodings::simplearchive::SimpleArchive, IntoBlob};
use crate::capability::CapabilityHandle;
use crate::id::{id_hex, Id};
use std::sync::OnceLock;
pub const ACTION_WRITE: Id = id_hex!("66B660A5481E04E552A1FA96AA9ECC48");
pub const ACTION_READ: Id = id_hex!("76583A671BBD61A6A8E66405DE75873F");
pub fn read_capability() -> CapabilityHandle {
static HANDLE: OnceLock<CapabilityHandle> = OnceLock::new();
*HANDLE.get_or_init(|| {
IntoBlob::<SimpleArchive>::to_blob(policy::read_definition().facts().clone()).get_handle()
})
}
pub fn write_capability() -> CapabilityHandle {
static HANDLE: OnceLock<CapabilityHandle> = OnceLock::new();
*HANDLE.get_or_init(|| {
IntoBlob::<SimpleArchive>::to_blob(policy::write_definition().facts().clone()).get_handle()
})
}
pub mod api;
pub mod coverage;
pub mod covered;
pub mod derived;
pub mod descriptor;
pub mod discovery;
pub mod encoding;
mod exact_derived;
pub mod generation;
pub mod held;
pub mod latest;
pub mod lww_register;
mod maintenance;
pub mod migration;
mod observation;
pub mod observed_store;
mod operation_snapshot;
pub mod ownership;
pub mod policy;
pub mod records;
pub mod simplearchive_union;
pub mod store;
pub mod succinctarchive_union;
pub mod view;
pub use ed25519_dalek::VerifyingKey;
pub use api::*;
pub use derived::*;
pub use discovery::*;
pub use encoding::*;
pub use exact_derived::CollectionRealizationError;
pub use generation::*;
pub use held::{HeldBlobs, HeldRead, HeldStore, HeldWalkConfig, HeldWalker};
pub use maintenance::MERGE_FAN_IN;
pub use policy::*;
pub use records::*;
pub use simplearchive_union::{PreparedCollectionCommit, StagedCollectionCommit};
pub use store::*;
pub use view::*;
#[cfg(test)]
mod oracle;
#[cfg(test)]
mod equation_admission_tests;
#[cfg(test)]
mod attached_tests;
#[cfg(test)]
pub(crate) mod test_support;