Skip to main content

AdmissionPolicy

Trait AdmissionPolicy 

Source
pub trait AdmissionPolicy<P: InstructionPolicy, M> {
    type Refusal;

    // Required methods
    fn validate_description(
        description: &MachineDescription<'_, P, M>,
    ) -> Result<(), Self::Refusal>;
    fn validate_instruction(
        instruction: &P::Instruction,
        metadata: &M,
    ) -> Result<(), Self::Refusal>;
    fn encode_metadata(metadata: &M, output: &mut Vec<u8>);
    fn encode_instruction(instruction: &P::Instruction, output: &mut Vec<u8>);
}
Expand description

Pure consumer checks and canonical encoding used during admission.

These callbacks validate data only. Effect classification and execution are intentionally not part of this trait, so admission cannot invoke them. A WebAssembly validator or an eBPF verifier can supply the policy.

Required Associated Types§

Source

type Refusal

Structured consumer refusal.

Required Methods§

Source

fn validate_description( description: &MachineDescription<'_, P, M>, ) -> Result<(), Self::Refusal>

Checks the machine-wide description, including entry shape and policy compatibility.

Source

fn validate_instruction( instruction: &P::Instruction, metadata: &M, ) -> Result<(), Self::Refusal>

Checks one instruction. Calling this for every instruction proves coverage.

Source

fn encode_metadata(metadata: &M, output: &mut Vec<u8>)

Appends a canonical, unambiguous encoding of consumer-owned metadata.

Source

fn encode_instruction(instruction: &P::Instruction, output: &mut Vec<u8>)

Appends a canonical, unambiguous encoding of one decoded instruction.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§