pub struct ResourceParameters(/* private fields */);Expand description
The resource parameter values carried by one request.
Equality is set equality, not vector equality: RFC 8707 §5 says the order of
several resource parameters naming one audience is not significant, so a
redemption that lists the same resources in a different order names the same
grant. iter still yields request order, because that is what
gets serialised back out.
§Examples
use protocol_droid::domain::mcp::resource_metadata::ResourceUri;
use protocol_droid::domain::oauth::ResourceParameters;
let api = ResourceUri::new("https://api.example.com/app/")?;
let parameters = ResourceParameters::single(&api);
assert_eq!(parameters.len(), 1);
// `ResourceUri` canonicalises, so the trailing slash is gone.
assert_eq!(parameters.iter().next(), Some("https://api.example.com/app"));Implementations§
Source§impl ResourceParameters
impl ResourceParameters
Sourcepub fn single(resource: &ResourceUri) -> Self
pub fn single(resource: &ResourceUri) -> Self
The parameters for a request naming one resource — MCP’s ordinary case, where a server has a single canonical identifier.
Sourcepub fn many(resources: impl IntoIterator<Item = ResourceUri>) -> Self
pub fn many(resources: impl IntoIterator<Item = ResourceUri>) -> Self
The parameters for a request naming several, deduplicated with the first occurrence of each kept, so two spellings of the same set compare equal.
Trait Implementations§
Source§impl Clone for ResourceParameters
impl Clone for ResourceParameters
Source§impl Debug for ResourceParameters
impl Debug for ResourceParameters
Source§impl Default for ResourceParameters
impl Default for ResourceParameters
impl Eq for ResourceParameters
Auto Trait Implementations§
impl Freeze for ResourceParameters
impl RefUnwindSafe for ResourceParameters
impl Send for ResourceParameters
impl Sync for ResourceParameters
impl Unpin for ResourceParameters
impl UnsafeUnpin for ResourceParameters
impl UnwindSafe for ResourceParameters
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