Skip to main content
Glama
on_request.rs1.03 kB
use tracing::{ Level, Span, }; use super::DEFAULT_MESSAGE_LEVEL; use crate::message::Message; pub trait OnRequest<R> { fn on_request(&mut self, req: &Message<R>, span: &Span); } impl<R> OnRequest<R> for () { fn on_request(&mut self, _req: &Message<R>, _span: &Span) {} } impl<R, F> OnRequest<R> for F where F: FnMut(&R, &Span), { fn on_request(&mut self, req: &Message<R>, span: &Span) { self(req, span) } } #[derive(Clone, Debug)] pub struct DefaultOnRequest { level: Level, } impl Default for DefaultOnRequest { fn default() -> Self { Self { level: DEFAULT_MESSAGE_LEVEL, } } } impl DefaultOnRequest { pub fn new() -> Self { Self::default() } pub fn level(mut self, level: Level) -> Self { self.level = level; self } } impl<R> OnRequest<R> for DefaultOnRequest { fn on_request(&mut self, _req: &Message<R>, _span: &Span) { event_dynamic_lvl!(self.level, "started processing message"); } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/systeminit/si'

If you have feedback or need assistance with the MCP directory API, please join our Discord server