pub struct CompiledPack {
pub path: PathBuf,
pub id: String,
pub source_digest: [u8; 32],
pub compiled_digest: [u8; 32],
pub rules: Vec<RuleRecord>,
pub programs: Vec<ProgramEntry>,
/* private fields */
}Fields§
§path: PathBuf§id: String§source_digest: [u8; 32]§compiled_digest: [u8; 32]§rules: Vec<RuleRecord>§programs: Vec<ProgramEntry>Implementations§
Source§impl CompiledPack
impl CompiledPack
Sourcepub fn open(
path: &Path,
expected_source_digest: Option<[u8; 32]>,
expected_compiled_digest: Option<[u8; 32]>,
) -> Result<Self, String>
pub fn open( path: &Path, expected_source_digest: Option<[u8; 32]>, expected_compiled_digest: Option<[u8; 32]>, ) -> Result<Self, String>
Open and verify a compiled pack header and program index.
§Errors
Returns an error for an unsafe path, incompatible format, corrupt index, or digest mismatch.
pub fn candidate_indices(&self, program: &str) -> &[u32]
Sourcepub fn read_rule(&mut self, index: u32) -> Result<Rule, String>
pub fn read_rule(&mut self, index: u32) -> Result<Rule, String>
Read and validate one indexed rule record.
§Errors
Returns an error when the index is invalid or the selected record is corrupt or invalid.
Sourcepub fn verify_compiled_digest(&mut self) -> Result<(), String>
pub fn verify_compiled_digest(&mut self) -> Result<(), String>
Rehash the open file and require the bytes to match those observed before parsing.
§Errors
Returns an error when the file changed after it was opened.
Sourcepub fn verify_all(&mut self) -> Result<(), String>
pub fn verify_all(&mut self) -> Result<(), String>
Verify every record and every program-to-rule reference in the pack.
§Errors
Returns an error when any record or index relationship is invalid.
pub const fn records_len(&self) -> u64
Trait Implementations§
Auto Trait Implementations§
impl Freeze for CompiledPack
impl RefUnwindSafe for CompiledPack
impl Send for CompiledPack
impl Sync for CompiledPack
impl Unpin for CompiledPack
impl UnsafeUnpin for CompiledPack
impl UnwindSafe for CompiledPack
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