pub struct ResourceFileProvider { /* private fields */ }Expand description
Provider for a single file discovered under providers/resources/,
serving either static file bytes or a sandboxed TypeScript read() reader.
Implementations§
Source§impl ResourceFileProvider
impl ResourceFileProvider
Sourcepub fn from_file(
absolute_path: PathBuf,
relative_path: &Path,
canonical_root: &Path,
) -> Result<Self, ResourceFileError>
pub fn from_file( absolute_path: PathBuf, relative_path: &Path, canonical_root: &Path, ) -> Result<Self, ResourceFileError>
Builds a provider for one file discovered under providers/resources/.
relative_path is the file’s path relative to that directory
(already verified not to escape the provider root — see
filesystem::collect_resource_files). canonical_root is that
directory’s canonicalized path, re-checked at read time. A .ts
extension makes the file a dynamic reader; every other extension
makes it a static resource read directly from disk.
Trait Implementations§
Source§impl Clone for ResourceFileProvider
impl Clone for ResourceFileProvider
Source§fn clone(&self) -> ResourceFileProvider
fn clone(&self) -> ResourceFileProvider
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 ResourceFileProvider
impl Debug for ResourceFileProvider
Source§impl Provider for ResourceFileProvider
impl Provider for ResourceFileProvider
Source§fn catalog(&self) -> ProviderCatalog
fn catalog(&self) -> ProviderCatalog
The provider’s catalog — its tools, prompts, resources, and metadata.
Source§fn call<'life0, 'async_trait>(
&'life0 self,
call: ProviderCall,
) -> Pin<Box<dyn Future<Output = Result<ProviderOutput, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn call<'life0, 'async_trait>(
&'life0 self,
call: ProviderCall,
) -> Pin<Box<dyn Future<Output = Result<ProviderOutput, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Executes one provider action call and returns its output.
Source§fn dynamic_resource_templates(&self) -> Vec<DynamicResourceTemplate>
fn dynamic_resource_templates(&self) -> Vec<DynamicResourceTemplate>
Dynamic resource templates this provider serves. Every provider
inherits the empty default — only file-based dynamic resource
readers (
providers/resources/*.ts) override it.Source§fn supports_resource_reads(&self) -> bool
fn supports_resource_reads(&self) -> bool
Whether this provider can actually serve
read_resource calls.
catalog().resources is a schema-legal field on every provider
kind’s manifest (OpenAPI, MCP, ai-sdk, WASM, Python, generic JSON),
but only file-based ResourceFileProviders have any mechanism to
read content back — every other kind inherits read_resource’s
default error. ResourceIndex::register uses this to reject a
manifest that declares resources it can never serve at snapshot-build
time, rather than letting them appear in resources/list and always
fail resources/read with an opaque error.Source§fn read_resource<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
uri: &'life1 str,
params: &'life2 BTreeMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<ResourceReadOutput, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn read_resource<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
uri: &'life1 str,
params: &'life2 BTreeMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<ResourceReadOutput, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Reads resource content for a URI the registry has already matched
against either this provider’s
catalog().resources (exact,
params empty) or one of its dynamic_resource_templates()
(params holds captured path parameters).Auto Trait Implementations§
impl Freeze for ResourceFileProvider
impl RefUnwindSafe for ResourceFileProvider
impl Send for ResourceFileProvider
impl Sync for ResourceFileProvider
impl Unpin for ResourceFileProvider
impl UnsafeUnpin for ResourceFileProvider
impl UnwindSafe for ResourceFileProvider
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> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more