pub struct ResourceManager { /* private fields */ }Expand description
Resource manager for managing available resources with retry logic
Implementations§
Source§impl ResourceManager
impl ResourceManager
Sourcepub fn with_notifications(
notification_tx: UnboundedSender<JsonRpcNotification>,
) -> Self
pub fn with_notifications( notification_tx: UnboundedSender<JsonRpcNotification>, ) -> Self
Create resource manager with notification channel
Sourcepub fn set_notification_tx(&mut self, tx: UnboundedSender<JsonRpcNotification>)
pub fn set_notification_tx(&mut self, tx: UnboundedSender<JsonRpcNotification>)
Set notification channel
Sourcepub fn set_retry_config(&self, config: ResourceRetryConfig)
pub fn set_retry_config(&self, config: ResourceRetryConfig)
Configure retry behavior
Sourcepub fn register_boxed(&self, resource: Arc<dyn Resource>)
pub fn register_boxed(&self, resource: Arc<dyn Resource>)
Register a boxed resource
Sourcepub fn register_template<T: ResourceTemplate + 'static>(&self, template: T)
pub fn register_template<T: ResourceTemplate + 'static>(&self, template: T)
Register a resource template
Sourcepub fn register_template_boxed(&self, template: Arc<dyn ResourceTemplate>)
pub fn register_template_boxed(&self, template: Arc<dyn ResourceTemplate>)
Register a boxed resource template
Sourcepub fn get_template(&self, name: &str) -> Option<Arc<dyn ResourceTemplate>>
pub fn get_template(&self, name: &str) -> Option<Arc<dyn ResourceTemplate>>
Get a template by name
Sourcepub fn list(&self) -> Vec<ResourceInfo>
pub fn list(&self) -> Vec<ResourceInfo>
List all registered resources
Sourcepub fn list_templates(&self) -> Vec<ResourceTemplateInfo>
pub fn list_templates(&self) -> Vec<ResourceTemplateInfo>
List all resource templates
Sourcepub fn list_templates_for_session(
&self,
_session: &Session,
ctx: &VisibilityContext<'_>,
) -> Vec<ResourceTemplateInfo>
pub fn list_templates_for_session( &self, _session: &Session, ctx: &VisibilityContext<'_>, ) -> Vec<ResourceTemplateInfo>
List templates visible in the given session/context
Sourcepub async fn read(
&self,
uri: &str,
params: HashMap<String, String>,
session: &Session,
) -> Result<Vec<ResourceContent>, ResourceError>
pub async fn read( &self, uri: &str, params: HashMap<String, String>, session: &Session, ) -> Result<Vec<ResourceContent>, ResourceError>
Read a resource by URI with parameters and retry logic
Sourcepub fn list_for_session(
&self,
session: &Session,
ctx: &VisibilityContext<'_>,
) -> Vec<ResourceInfo>
pub fn list_for_session( &self, session: &Session, ctx: &VisibilityContext<'_>, ) -> Vec<ResourceInfo>
List resources visible to a specific session
Resolution order:
- Session overrides (replace global resources with session-specific implementations)
- Session extras (additional resources added to session)
- Global resources (filtered by hidden list and visibility predicate)
Sourcepub async fn read_for_session(
&self,
uri: &str,
params: HashMap<String, String>,
session: &Session,
visibility_ctx: &VisibilityContext<'_>,
) -> Result<Vec<ResourceContent>, ResourceError>
pub async fn read_for_session( &self, uri: &str, params: HashMap<String, String>, session: &Session, visibility_ctx: &VisibilityContext<'_>, ) -> Result<Vec<ResourceContent>, ResourceError>
Read a resource with session context
Resolution order:
- Check session overrides
- Check session extras
- Check session hidden
- Check visibility predicate
- Fall back to global registry with retry logic
Trait Implementations§
Source§impl Clone for ResourceManager
impl Clone for ResourceManager
Source§fn clone(&self) -> ResourceManager
fn clone(&self) -> ResourceManager
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for ResourceManager
impl !RefUnwindSafe for ResourceManager
impl Send for ResourceManager
impl Sync for ResourceManager
impl Unpin for ResourceManager
impl !UnwindSafe for ResourceManager
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