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("extension_registry", &self.plugins.extension_registry)
14            .field("geoip_reader", &self.subsystems.geoip_reader.is_some())
15            .field("content_config", &self.cfg.content_config.is_some())
16            .field("route_classifier", &"RouteClassifier")
17            .field("analytics_service", &"AnalyticsService")
18            .field("fingerprint_repo", &self.data.fingerprint_repo.is_some())
19            .field("user_service", &self.data.user_service.is_some())
20            .field("app_paths", &"AppPaths")
21            .field("marketplace_filter", &self.plugins.marketplace_filter)
22            .field(
23                "event_bridge",
24                &self.subsystems.event_bridge.get().is_some(),
25            )
26            .field("system_admin", &self.subsystems.system_admin.username())
27            .field("mcp_registry", &"RegistryService")
28            .field("authz_hook", &"SharedAuthzHook")
29            .field("governance", &self.subsystems.governance)
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            .field("managed_repository", &"ManagedRepository")
51            .finish()
52    }
53}
54
55impl std::fmt::Debug for ConfigPlane {
56    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
57        f.debug_struct("ConfigPlane")
58            .field("config", &"Config")
59            .field("app_paths", &"AppPaths")
60            .field("content_config", &self.content_config.is_some())
61            .field("route_classifier", &"RouteClassifier")
62            .finish()
63    }
64}
65
66impl std::fmt::Debug for Plugins {
67    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
68        f.debug_struct("Plugins")
69            .field("extension_registry", &self.extension_registry)
70            .field("mcp_registry", &"RegistryService")
71            .field("marketplace_filter", &self.marketplace_filter)
72            .field("marketplace_cache", &self.marketplace_cache)
73            .finish()
74    }
75}
76
77impl std::fmt::Debug for Subsystems {
78    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
79        f.debug_struct("Subsystems")
80            .field("system_admin", &self.system_admin.username())
81            .field("authz_hook", &"SharedAuthzHook")
82            .field("governance", &self.governance)
83            .field("ai_service", &self.ai_service.is_some())
84            .field("artifact_ingest", &self.artifact_ingest)
85            .field("schema_install_clean", &self.schema_install.is_clean())
86            .field("event_bridge", &self.event_bridge.get().is_some())
87            .field("event_router", &self.event_router)
88            .field("geoip_reader", &self.geoip_reader.is_some())
89            .field("file_storage", &"FileStorage")
90            .field("shutdown", &"ShutdownRequest")
91            .field(
92                "background_tasks_in_flight",
93                &self.background_tasks.in_flight(),
94            )
95            .field("publish_guard", &"Mutex<PublishGuard>")
96            .finish()
97    }
98}