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§
Required Methods§
Sourcefn validate_description(
description: &MachineDescription<'_, P, M>,
) -> Result<(), Self::Refusal>
fn validate_description( description: &MachineDescription<'_, P, M>, ) -> Result<(), Self::Refusal>
Checks the machine-wide description, including entry shape and policy compatibility.
Sourcefn validate_instruction(
instruction: &P::Instruction,
metadata: &M,
) -> Result<(), Self::Refusal>
fn validate_instruction( instruction: &P::Instruction, metadata: &M, ) -> Result<(), Self::Refusal>
Checks one instruction. Calling this for every instruction proves coverage.
Sourcefn encode_metadata(metadata: &M, output: &mut Vec<u8>)
fn encode_metadata(metadata: &M, output: &mut Vec<u8>)
Appends a canonical, unambiguous encoding of consumer-owned metadata.
Sourcefn encode_instruction(instruction: &P::Instruction, output: &mut Vec<u8>)
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".