pub trait ResourceTemplateHandler: Send + Sync {
// Required methods
fn handle<'life0, 'async_trait>(
&'life0 self,
request: ListResourceTemplatesRequest,
ctx: RequestContext,
) -> Pin<Box<dyn Future<Output = ServerResult<ListResourceTemplatesResult>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn get_templates<'life0, 'async_trait>(
&'life0 self,
ctx: RequestContext,
) -> Pin<Box<dyn Future<Output = ServerResult<Vec<ResourceTemplate>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn get_template<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
ctx: RequestContext,
) -> Pin<Box<dyn Future<Output = ServerResult<Option<ResourceTemplate>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
// Provided methods
fn validate_uri_template(&self, uri_template: &str) -> ServerResult<()> { ... }
fn expand_template(
&self,
uri_template: &str,
parameters: &HashMap<String, Value>,
) -> ServerResult<String> { ... }
fn validate_parameters<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_template: &'life1 ResourceTemplate,
_parameters: &'life2 HashMap<String, Value>,
_ctx: RequestContext,
) -> Pin<Box<dyn Future<Output = ServerResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait { ... }
}
Expand description
Resource template handler trait for parameterized resource access
Required Methods§
Sourcefn handle<'life0, 'async_trait>(
&'life0 self,
request: ListResourceTemplatesRequest,
ctx: RequestContext,
) -> Pin<Box<dyn Future<Output = ServerResult<ListResourceTemplatesResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn handle<'life0, 'async_trait>(
&'life0 self,
request: ListResourceTemplatesRequest,
ctx: RequestContext,
) -> Pin<Box<dyn Future<Output = ServerResult<ListResourceTemplatesResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Handle a list resource templates request
Sourcefn get_templates<'life0, 'async_trait>(
&'life0 self,
ctx: RequestContext,
) -> Pin<Box<dyn Future<Output = ServerResult<Vec<ResourceTemplate>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_templates<'life0, 'async_trait>(
&'life0 self,
ctx: RequestContext,
) -> Pin<Box<dyn Future<Output = ServerResult<Vec<ResourceTemplate>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get available resource templates
Sourcefn get_template<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
ctx: RequestContext,
) -> Pin<Box<dyn Future<Output = ServerResult<Option<ResourceTemplate>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_template<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
ctx: RequestContext,
) -> Pin<Box<dyn Future<Output = ServerResult<Option<ResourceTemplate>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get a specific template by name
Provided Methods§
Sourcefn validate_uri_template(&self, uri_template: &str) -> ServerResult<()>
fn validate_uri_template(&self, uri_template: &str) -> ServerResult<()>
Validate template URI pattern (RFC 6570)
Sourcefn expand_template(
&self,
uri_template: &str,
parameters: &HashMap<String, Value>,
) -> ServerResult<String>
fn expand_template( &self, uri_template: &str, parameters: &HashMap<String, Value>, ) -> ServerResult<String>
Expand URI template with parameters
Sourcefn validate_parameters<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_template: &'life1 ResourceTemplate,
_parameters: &'life2 HashMap<String, Value>,
_ctx: RequestContext,
) -> Pin<Box<dyn Future<Output = ServerResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn validate_parameters<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_template: &'life1 ResourceTemplate,
_parameters: &'life2 HashMap<String, Value>,
_ctx: RequestContext,
) -> Pin<Box<dyn Future<Output = ServerResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Validate template parameters