#[cfg(feature = "linear")]
pub mod linear;
use crate::{
error::Error,
loader::Loader,
rules::{Rule, RuleId},
};
pub trait Engine {
type Loader: Loader<Component = Self> + Default;
const EBPF_BYTES: &'static [u8];
const EBPF_PROGRAM_NAME: &'static str;
fn capacity(&self) -> Option<usize>;
fn add_rule(&mut self, rule_id: RuleId, rule: &Rule) -> Result<(), Error>;
fn remove_rule(&mut self, rule_id: RuleId, rule: &Rule) -> Result<(), Error>;
}