use crate::filters::prelude::*;
use serde::{Deserialize, Serialize};
use crate::generated::quilkin::filters::pass::v1alpha1 as proto;
pub struct Pass;
impl Pass {
fn new() -> Self {
Self
}
}
impl Filter for Pass {
#[cfg_attr(feature = "instrument", tracing::instrument(skip_all))]
fn read<P: PacketMut>(&self, _: &mut ReadContext<'_, P>) -> Result<(), FilterError> {
Ok(())
}
#[cfg_attr(feature = "instrument", tracing::instrument(skip_all))]
fn write<P: PacketMut>(&self, _: &mut WriteContext<P>) -> Result<(), FilterError> {
Ok(())
}
}
impl StaticFilter for Pass {
const NAME: &'static str = "quilkin.filters.pass.v1alpha1.Pass";
type Configuration = Config;
type BinaryConfiguration = proto::Pass;
fn try_from_config(_config: Option<Self::Configuration>) -> Result<Self, CreationError> {
Ok(Pass::new())
}
}
#[derive(Serialize, Deserialize, Debug, schemars::JsonSchema)]
pub struct Config;
impl From<Config> for proto::Pass {
fn from(_config: Config) -> Self {
Self {}
}
}
impl TryFrom<proto::Pass> for Config {
type Error = ConvertProtoConfigError;
fn try_from(_: proto::Pass) -> Result<Self, Self::Error> {
Ok(Config)
}
}