ResourceTemplateHandler

Trait ResourceTemplateHandler 

Source
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§

Source

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

Source

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

Source

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§

Source

fn validate_uri_template(&self, uri_template: &str) -> ServerResult<()>

Validate template URI pattern (RFC 6570)

Source

fn expand_template( &self, uri_template: &str, parameters: &HashMap<String, Value>, ) -> ServerResult<String>

Expand URI template with parameters

Source

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

Implementors§