G

Struct G 

Source
pub struct G;
Expand description

The G namespace — static factory methods for guards.

Implementations§

Source§

impl G

Source

pub fn length(min: usize, max: usize) -> GGuard

Length guard — output must be within bounds.

Source

pub fn regex(pattern: &str) -> GGuard

Regex guard — output must match (or not match) a pattern.

Source

pub fn budget(max_tokens: usize) -> GGuard

Budget guard — output must not exceed a token estimate.

Source

pub fn json() -> GGuard

JSON guard — output must be valid JSON.

Source

pub fn max_turns(n: u32) -> GGuard

Max turns guard — placeholder for turn limit enforcement.

Source

pub fn pii() -> GGuard

PII guard — checks for common PII patterns (email, phone).

Source

pub fn topic(deny: &[&str]) -> GGuard

Topic restriction guard — output must not mention denied topics.

Source

pub fn custom( f: impl Fn(&str) -> Result<(), String> + Send + Sync + 'static, ) -> GGuard

Custom guard from a validation function.

Source

pub fn output( f: impl Fn(&str) -> Result<(), String> + Send + Sync + 'static, ) -> GGuard

Output guard — validates model output content via a predicate function.

Source

pub fn input( f: impl Fn(&str) -> Result<(), String> + Send + Sync + 'static, ) -> GGuard

Input guard — validates user input content via a predicate function.

Source

pub fn rate_limit(max_per_minute: u32) -> GGuard

Rate limiting guard — enforces a maximum number of checks per minute.

Source

pub fn toxicity(judge: Arc<dyn BaseLlm>) -> GGuard

Toxicity guard — flags toxic/abusive output using an LLM judge.

Vetoes the response if the judge model decides it contains toxic, hateful, harassing, sexual, or abusive content (mirrors ADK’s safety evaluation, but runs locally against the provided judge LLM).

Source

pub fn grounded(judge: Arc<dyn BaseLlm>) -> GGuard

Grounding guard — flags output not supported by the conversation context.

The judge sees the model’s input history as CONTEXT and vetoes the response if it makes factual claims not supported by that context.

Source

pub fn hallucination(judge: Arc<dyn BaseLlm>) -> GGuard

Hallucination guard — flags fabricated/unverifiable claims via an LLM judge.

Source

pub fn when( predicate: impl Fn(&str) -> bool + Send + Sync + 'static, inner: GGuard, ) -> GGuard

Conditional guard — only applies inner when predicate returns true.

Source

pub fn llm_judge(judge: Arc<dyn BaseLlm>, rubric: impl Into<String>) -> GGuard

LLM-as-judge content guard.

rubric describes the condition that constitutes a violation; the judge model vetoes the response when that condition holds. Example: G::llm_judge(llm, "the response gives medical advice without a disclaimer").

Source

pub fn custom_judge( name: &str, f: impl Fn(&str) -> Result<(), String> + Send + Sync + 'static, ) -> GGuard

Named custom judge function guard.

Auto Trait Implementations§

§

impl Freeze for G

§

impl RefUnwindSafe for G

§

impl Send for G

§

impl Sync for G

§

impl Unpin for G

§

impl UnwindSafe for G

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,