pub struct Extensions(/* private fields */);Expand description
Canonical x402 extension envelope.
Maps each extension’s stable identifier (e.g. "bazaar",
"payment-identifier") to its ExtensionEntry. The type is
#[serde(transparent)] so on the wire it appears as a plain JSON object.
§Examples
use r402_core::wire::{Extensions, ExtensionEntry};
use serde_json::json;
let mut ext = Extensions::new();
ext.insert("bazaar", ExtensionEntry::info(json!({"registered": true})));
let rendered = serde_json::to_value(&ext).unwrap();
assert_eq!(rendered["bazaar"]["info"]["registered"], true);Implementations§
Source§impl Extensions
impl Extensions
Sourcepub fn get(&self, id: &str) -> Option<&ExtensionEntry>
pub fn get(&self, id: &str) -> Option<&ExtensionEntry>
Looks up an extension by stable ID.
Sourcepub fn insert(&mut self, id: impl Into<CompactString>, entry: ExtensionEntry)
pub fn insert(&mut self, id: impl Into<CompactString>, entry: ExtensionEntry)
Inserts or replaces an extension payload for the given ID.
Sourcepub fn remove(&mut self, id: &str) -> Option<ExtensionEntry>
pub fn remove(&mut self, id: &str) -> Option<ExtensionEntry>
Removes an extension by stable ID, returning the previous value if any.
Sourcepub fn iter(&self) -> impl Iterator<Item = (&CompactString, &ExtensionEntry)>
pub fn iter(&self) -> impl Iterator<Item = (&CompactString, &ExtensionEntry)>
Iterates over (id, entry) pairs.
Trait Implementations§
Source§impl Clone for Extensions
impl Clone for Extensions
Source§fn clone(&self) -> Extensions
fn clone(&self) -> Extensions
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 moreSource§impl Debug for Extensions
impl Debug for Extensions
Source§impl Default for Extensions
impl Default for Extensions
Source§fn default() -> Extensions
fn default() -> Extensions
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for Extensions
impl<'de> Deserialize<'de> for Extensions
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for Extensions
Source§impl<K, V> FromIterator<(K, V)> for Extensions
impl<K, V> FromIterator<(K, V)> for Extensions
Source§impl PartialEq for Extensions
impl PartialEq for Extensions
Source§impl Serialize for Extensions
impl Serialize for Extensions
impl StructuralPartialEq for Extensions
Auto Trait Implementations§
impl Freeze for Extensions
impl RefUnwindSafe for Extensions
impl Send for Extensions
impl Sync for Extensions
impl Unpin for Extensions
impl UnsafeUnpin for Extensions
impl UnwindSafe for Extensions
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.