#![deny(missing_docs)]
#[doc(hidden)]
pub extern crate self as syncbat;
pub mod builder;
pub mod core;
pub mod error;
pub mod handler;
pub mod module;
pub mod operation;
pub mod operation_name;
pub mod receipt;
pub mod register;
pub mod register_store;
pub mod store_sink;
pub use builder::CoreBuilder;
pub use core::{Checkout, CheckoutFrame, CheckoutResult, Core, Ctx};
pub use error::{BuildError, ReceiptSinkHandlerCause, RuntimeError};
pub use handler::{Handler, HandlerError, HandlerResult};
pub use module::Module;
pub use operation::{
DescriptorValidationError, EffectClass, OperationDescriptor, OperationInput, OperationOutput,
OperationRegisterItem, MAX_DESCRIPTOR_REF_BYTES, MAX_OPERATION_NAME_BYTES,
};
pub use operation_name::{OperationName, OperationNameError};
pub use receipt::{
BatpakReceiptFields, ReceiptEnvelope, ReceiptExtensionDrawer, ReceiptHash, ReceiptHashPolicy,
ReceiptHasher, ReceiptOutcome, ReceiptSink, ReceiptSinkError, RecordedReceipt,
SYNCBAT_RECEIPT_EVENT_KIND,
};
pub use register::{CacheRegister, Register, RegisterValidationError};
pub use register_store::{
rebuild_register_from_store, RegisterOperationActionV1, RegisterOperationRowV1,
StoreRegisterCatalog, StoreRegisterCatalogError, SYNCBAT_REGISTER_EVENT_KIND,
};
pub use store_sink::{StoreReceiptSink, StoreReceiptSinkError};
pub use syncbat_macros::operation;
pub const SYNCBAT_EXTENSION_NAMESPACE: &str = "syncbat";
pub enum SyncbatReceiptNamespace {}
impl batpak::store::ReceiptExtensionNamespace for SyncbatReceiptNamespace {
const PREFIX: &'static str = SYNCBAT_EXTENSION_NAMESPACE;
}
pub type SyncbatReceiptExtensionKey = batpak::store::ReceiptExtensionKey<SyncbatReceiptNamespace>;
pub type SyncbatReceiptExtensionValue =
batpak::store::ReceiptExtensionValue<SyncbatReceiptNamespace>;
pub fn receipt_extension_key(
field: impl AsRef<str>,
) -> Result<SyncbatReceiptExtensionKey, batpak::store::ExtensionKeyError> {
SyncbatReceiptExtensionKey::new(field)
}
#[must_use]
pub fn receipt_extension_value(
bytes: impl Into<batpak::store::EncodedBytes>,
) -> SyncbatReceiptExtensionValue {
SyncbatReceiptExtensionValue::new(bytes)
}