pub trait Resource {
// Required methods
fn client(&self) -> &ComposioClient;
fn telemetry_context(&self) -> &TelemetryContext;
// Provided methods
fn sanitize_payload<T>(&self, payload: T) -> T
where T: Serialize + DeserializeOwned { ... }
fn provider(&self) -> Option<String> { ... }
fn create_method_event(
&self,
function_name: &str,
provider: Option<&str>,
) -> Option<TelemetryData> { ... }
fn push_telemetry_event(&self, event: Event) { ... }
fn trace_method<F, R>(
&self,
function_name: &str,
provider: Option<&str>,
f: F,
) -> R
where F: FnOnce() -> R { ... }
fn trace_method_with_error<F, R, E>(
&self,
function_name: &str,
provider: Option<&str>,
f: F,
) -> Result<R, E>
where F: FnOnce() -> Result<R, E>,
E: Display { ... }
}Expand description
Base resource trait for Composio resources
This trait provides the foundation for all Composio resource types, including telemetry tracking, method tracing, and payload sanitization.
Required Methods§
Sourcefn client(&self) -> &ComposioClient
fn client(&self) -> &ComposioClient
Get the client reference
Sourcefn telemetry_context(&self) -> &TelemetryContext
fn telemetry_context(&self) -> &TelemetryContext
Get telemetry context
Provided Methods§
Sourcefn sanitize_payload<T>(&self, payload: T) -> Twhere
T: Serialize + DeserializeOwned,
fn sanitize_payload<T>(&self, payload: T) -> Twhere
T: Serialize + DeserializeOwned,
Sanitize payload by removing sensitive information
This method filters out sensitive fields from payloads before logging. Override this method in specific resource implementations to customize which fields should be sanitized.
Sourcefn provider(&self) -> Option<String>
fn provider(&self) -> Option<String>
Get the provider name for telemetry
Returns the provider name from the client configuration if available.
Sourcefn create_method_event(
&self,
function_name: &str,
provider: Option<&str>,
) -> Option<TelemetryData>
fn create_method_event( &self, function_name: &str, provider: Option<&str>, ) -> Option<TelemetryData>
Create a telemetry event for a method call
This method creates a telemetry event with metadata about the current execution context, including timestamp, environment, and provider information.
Sourcefn push_telemetry_event(&self, event: Event)
fn push_telemetry_event(&self, event: Event)
Push a telemetry event
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.