use serde::{Deserialize, Serialize};
pub mod binding;
pub mod checkpoint;
pub mod command;
pub mod config;
pub mod driver;
pub mod effect;
pub mod envelope;
pub mod event;
pub mod fault;
pub mod projection;
pub mod record;
pub mod restore;
pub mod root;
pub mod scalar;
pub mod syscall;
pub mod terminal;
pub mod transaction;
#[cfg(test)]
mod crash_point;
#[cfg(test)]
mod tests;
pub use binding::CanonicalKernel;
pub use checkpoint::*;
pub use command::*;
pub use config::*;
pub use driver::{CanonicalOperationDriver, PlannedStep};
pub use effect::*;
pub use envelope::*;
pub use event::*;
pub use fault::*;
pub use projection::*;
pub use record::*;
pub use restore::*;
pub use root::*;
pub use scalar::*;
pub use syscall::*;
pub use terminal::*;
pub use transaction::*;
pub const ABI: u32 = 4;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct KernelBootstrapLimits {
pub absolute_max_input_bytes: u32,
pub absolute_max_json_depth: u16,
pub absolute_max_collection_entries: u32,
}
impl KernelBootstrapLimits {
pub const DEFAULT: Self = Self {
absolute_max_input_bytes: 16 * 1024 * 1024,
absolute_max_json_depth: 64,
absolute_max_collection_entries: 65_536,
};
}
impl Default for KernelBootstrapLimits {
fn default() -> Self {
Self::DEFAULT
}
}