pub struct ResourceTemplate {
pub uri_template: String,
pub name: String,
pub title: Option<String>,
pub description: Option<String>,
pub mime_type: Option<String>,
pub icons: Option<Vec<ToolIcon>>,
/* private fields */
}Expand description
A parameterized resource template
Resource templates use URI template syntax (RFC 6570) to match multiple URIs and extract variable values. This allows servers to expose dynamic resources like file systems or database records.
§Example
use tower_mcp::resource::ResourceTemplateBuilder;
use tower_mcp::protocol::{ReadResourceResult, ResourceContent};
use std::collections::HashMap;
let template = ResourceTemplateBuilder::new("file:///{path}")
.name("Project Files")
.handler(|uri: String, vars: HashMap<String, String>| async move {
let path = vars.get("path").unwrap_or(&String::new()).clone();
Ok(ReadResourceResult {
contents: vec![ResourceContent {
uri,
mime_type: Some("text/plain".to_string()),
text: Some(format!("Contents of {}", path)),
blob: None,
}],
})
});Fields§
§uri_template: StringThe URI template pattern (e.g., file:///{path})
name: StringHuman-readable name
title: Option<String>Human-readable title for display purposes
description: Option<String>Optional description
mime_type: Option<String>Optional MIME type hint
icons: Option<Vec<ToolIcon>>Optional icons for display in user interfaces
Implementations§
Source§impl ResourceTemplate
impl ResourceTemplate
Sourcepub fn builder(uri_template: impl Into<String>) -> ResourceTemplateBuilder
pub fn builder(uri_template: impl Into<String>) -> ResourceTemplateBuilder
Create a new resource template builder
Sourcepub fn definition(&self) -> ResourceTemplateDefinition
pub fn definition(&self) -> ResourceTemplateDefinition
Get the template definition for resources/templates/list
Trait Implementations§
Source§impl Clone for ResourceTemplate
impl Clone for ResourceTemplate
Auto Trait Implementations§
impl Freeze for ResourceTemplate
impl !RefUnwindSafe for ResourceTemplate
impl Send for ResourceTemplate
impl Sync for ResourceTemplate
impl Unpin for ResourceTemplate
impl !UnwindSafe for ResourceTemplate
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