pub struct PluginInput {
pub request_id: String,
pub session_id: String,
pub payload: Value,
pub metadata: HashMap<String, String>,
}Expand description
Input passed to every plugin in a PluginChain.
The payload field carries stage-specific data as an untyped JSON value so
that the same trait works across all pipeline stages without requiring a
separate trait per stage.
§Cloning
PluginInput is cheap to clone; payload clones are backed by Arc
internally in serde_json::Value.
Fields§
§request_id: StringUnique request ID for distributed trace correlation.
session_id: StringSession this request belongs to.
payload: ValueStage-specific payload (prompt text, tokens, assembled prompt, …).
Plugins that do not need to inspect or mutate the payload should pass
it through unchanged via PluginOutput::passthrough.
metadata: HashMap<String, String>Arbitrary key-value metadata forwarded from the originating
crate::PromptRequest. Plugins may read and extend this map.
Trait Implementations§
Source§impl Clone for PluginInput
impl Clone for PluginInput
Source§fn clone(&self) -> PluginInput
fn clone(&self) -> PluginInput
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for PluginInput
impl RefUnwindSafe for PluginInput
impl Send for PluginInput
impl Sync for PluginInput
impl Unpin for PluginInput
impl UnsafeUnpin for PluginInput
impl UnwindSafe for PluginInput
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request