Skip to main content

systemprompt_runtime/context/
debug_impls.rs

1//! Hand-written `Debug` implementations for the application context planes.
2//!
3//! Copyright (c) systemprompt.io — Business Source License 1.1.
4//! See <https://systemprompt.io> for licensing details.
5
6use super::{AppContext, ConfigPlane, DataPlane, Plugins, Subsystems};
7
8impl std::fmt::Debug for AppContext {
9    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10        f.debug_struct("AppContext")
11            .field("config", &"Config")
12            .field("database", &"DbPool")
13            .field("api_registry", &"ModuleApiRegistry")
14            .field("extension_registry", &self.plugins.extension_registry)
15            .field("geoip_reader", &self.subsystems.geoip_reader.is_some())
16            .field("content_config", &self.cfg.content_config.is_some())
17            .field("route_classifier", &"RouteClassifier")
18            .field("analytics_service", &"AnalyticsService")
19            .field("fingerprint_repo", &self.data.fingerprint_repo.is_some())
20            .field("user_service", &self.data.user_service.is_some())
21            .field("app_paths", &"AppPaths")
22            .field("marketplace_filter", &self.plugins.marketplace_filter)
23            .field(
24                "event_bridge",
25                &self.subsystems.event_bridge.get().is_some(),
26            )
27            .field("system_admin", &self.subsystems.system_admin.username())
28            .field("mcp_registry", &"RegistryService")
29            .field("authz_hook", &"SharedAuthzHook")
30            .finish()
31    }
32}
33
34impl std::fmt::Debug for DataPlane {
35    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
36        f.debug_struct("DataPlane")
37            .field("database", &"DbPool")
38            .field("analytics_service", &"AnalyticsService")
39            .field("fingerprint_repo", &self.fingerprint_repo.is_some())
40            .field("user_service", &self.user_service.is_some())
41            .field("a2a_repositories", &"A2ARepositories")
42            .field("content_repositories", &"ContentRepositories")
43            .field("oauth_repositories", &"OAuthRepositories")
44            .field("user_repository", &"UserRepository")
45            .field("service_repository", &"ServiceRepository")
46            .field("ai_repositories", &"AiRepositories")
47            .field("analytics_repositories", &"AnalyticsRepositories")
48            .field("file_repository", &"FileRepository")
49            .field("mcp_session_repository", &"McpSessionRepository")
50            .finish()
51    }
52}
53
54impl std::fmt::Debug for ConfigPlane {
55    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
56        f.debug_struct("ConfigPlane")
57            .field("config", &"Config")
58            .field("app_paths", &"AppPaths")
59            .field("content_config", &self.content_config.is_some())
60            .field("route_classifier", &"RouteClassifier")
61            .finish()
62    }
63}
64
65impl std::fmt::Debug for Plugins {
66    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
67        f.debug_struct("Plugins")
68            .field("extension_registry", &self.extension_registry)
69            .field("api_registry", &"ModuleApiRegistry")
70            .field("mcp_registry", &"RegistryService")
71            .field("marketplace_filter", &self.marketplace_filter)
72            .finish()
73    }
74}
75
76impl std::fmt::Debug for Subsystems {
77    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
78        f.debug_struct("Subsystems")
79            .field("system_admin", &self.system_admin.username())
80            .field("authz_hook", &"SharedAuthzHook")
81            .field("event_bridge", &self.event_bridge.get().is_some())
82            .field("geoip_reader", &self.geoip_reader.is_some())
83            .finish()
84    }
85}