MCPcopy Create free account
hub / github.com/csskit/csskit / on_event

Method on_event

crates/csskit_lsp/src/jsonrpc/tracing_layer.rs:74–112  ·  view source on GitHub ↗
(&self, event: &Event, _ctx: Context<'_, S>)

Source from the content-addressed store, hash-verified

72 S: Subscriber,
73{
74 fn on_event(&self, event: &Event, _ctx: Context<'_, S>) {
75 if event.metadata().level() > &(*self.level.read().unwrap()) {
76 return;
77 }
78 let mut fields = MessageVisitor::default();
79 fields.insert("name", event.metadata().name().into());
80 fields.insert("level", event.metadata().level().as_str().into());
81 event.record(&mut fields);
82 let output = serde_json::json!(fields);
83
84 let level = match event.metadata().level() {
85 &Level::ERROR => MessageType::ERROR,
86 &Level::WARN => MessageType::WARNING,
87 &Level::INFO => MessageType::INFO,
88 &Level::DEBUG | &Level::TRACE => {
89 let message = Message::Notification(Notification {
90 method: LogTrace::METHOD.into(),
91 params: to_value(LogTraceParams {
92 verbose: None,
93 message: to_string_pretty(&output).ok().unwrap_or_default(),
94 })
95 .unwrap_or_default(),
96 });
97 self.sender.try_send(message).ok();
98 return;
99 }
100 };
101
102 let message = Message::Notification(Notification {
103 method: LogMessage::METHOD.into(),
104 params: to_value(LogMessageParams {
105 typ: level,
106 message: to_string_pretty(&output).ok().unwrap_or_default(),
107 })
108 .unwrap_or_default(),
109 });
110
111 self.sender.try_send(message).ok();
112 }
113}

Callers

nothing calls this directly

Calls 7

NotificationClass · 0.85
okMethod · 0.80
metadataMethod · 0.45
readMethod · 0.45
insertMethod · 0.45
nameMethod · 0.45
as_strMethod · 0.45

Tested by

no test coverage detected