pub enum DynInput {
Deserializer(Box<dyn Deserializer<'static> + Send>),
Value(Value),
}Expand description
Type-erased input — wraps raw data that can be deserialized on demand.
Used by the type-erased execution layer; the typed layer deserializes into TInput.
Two modes:
Deserializer: lazy deserialization from raw bytes (HTTP body, query string, etc.)Value: pre-parsed JSON value (from batch requests, middleware inspection, etc.)
Variants§
Deserializer(Box<dyn Deserializer<'static> + Send>)
Wraps a serde deserializer for lazy deserialization.
Value(Value)
Already-parsed JSON value.
Implementations§
Source§impl DynInput
impl DynInput
Sourcepub fn from_value(value: Value) -> Self
pub fn from_value(value: Value) -> Self
Create from a JSON value.
Sourcepub fn deserialize<T: DeserializeOwned>(self) -> Result<T, ProcedureError>
pub fn deserialize<T: DeserializeOwned>(self) -> Result<T, ProcedureError>
Deserialize into a concrete type. Consumes self (can only be called once).
Sourcepub fn as_value(&self) -> Option<&Value>
pub fn as_value(&self) -> Option<&Value>
Peek at the value (only works if already materialized).
Sourcepub fn materialize(self) -> Result<DynInput, ProcedureError>
pub fn materialize(self) -> Result<DynInput, ProcedureError>
Materialize a Deserializer variant into a Value variant.
Allows middleware to inspect input without permanently consuming it.
If already a Value, returns self unchanged.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for DynInput
impl !RefUnwindSafe for DynInput
impl Send for DynInput
impl !Sync for DynInput
impl Unpin for DynInput
impl UnsafeUnpin for DynInput
impl !UnwindSafe for DynInput
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