pub struct PolicyBuilder { /* private fields */ }Expand description
Build a PolicySnapshot from config + models with validation.
use calybris_core::builder::{PolicyBuilder, ModelBuilder};
use calybris_core::config::EngineConfig;
let snapshot = PolicyBuilder::new(EngineConfig::new())
.epochs(1, 1)
.model(ModelBuilder::new(1, 0).quality(9000).cost(250, 1000).build())
.model(ModelBuilder::new(2, 1).quality(7000).cost(25, 125).build())
.build()
.unwrap();
assert_eq!(snapshot.models().len(), 2);Implementations§
Source§impl PolicyBuilder
impl PolicyBuilder
Sourcepub fn new(config: EngineConfig) -> Self
pub fn new(config: EngineConfig) -> Self
Start building a policy from an crate::config::EngineConfig.
Sourcepub fn model(self, model: KernelModel) -> Self
pub fn model(self, model: KernelModel) -> Self
Add a model to the catalog.
Sourcepub fn models(self, models: impl IntoIterator<Item = KernelModel>) -> Self
pub fn models(self, models: impl IntoIterator<Item = KernelModel>) -> Self
Add multiple models.
Sourcepub fn build(self) -> Result<PolicySnapshot, BuildError>
pub fn build(self) -> Result<PolicySnapshot, BuildError>
Build and validate the snapshot.
Validates config, enforces max_catalog_size, then delegates to
PolicySnapshot::try_new_trusted for canonical trust-boundary validation.
Sourcepub fn build_trusted(self) -> Result<PolicySnapshot, TrustedBuildError>
pub fn build_trusted(self) -> Result<PolicySnapshot, TrustedBuildError>
Build with precise trust-boundary error reporting.
Auto Trait Implementations§
impl Freeze for PolicyBuilder
impl RefUnwindSafe for PolicyBuilder
impl Send for PolicyBuilder
impl Sync for PolicyBuilder
impl Unpin for PolicyBuilder
impl UnsafeUnpin for PolicyBuilder
impl UnwindSafe for PolicyBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more