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            .field("governance", &self.subsystems.governance)
31            .finish()
32    }
33}
34
35impl std::fmt::Debug for DataPlane {
36    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
37        f.debug_struct("DataPlane")
38            .field("database", &"DbPool")
39            .field("analytics_service", &"AnalyticsService")
40            .field("fingerprint_repo", &self.fingerprint_repo.is_some())
41            .field("user_service", &self.user_service.is_some())
42            .field("a2a_repositories", &"A2ARepositories")
43            .field("content_repositories", &"ContentRepositories")
44            .field("oauth_repositories", &"OAuthRepositories")
45            .field("user_repository", &"UserRepository")
46            .field("service_repository", &"ServiceRepository")
47            .field("ai_repositories", &"AiRepositories")
48            .field("analytics_repositories", &"AnalyticsRepositories")
49            .field(
50                "feedback_snapshots_repository",
51                &"FeedbackSnapshotsRepository",
52            )
53            .field("feedback_facts_repository", &"FeedbackFactsRepository")
54            .field("file_repository", &"FileRepository")
55            .field("mcp_session_repository", &"McpSessionRepository")
56            .field("managed_repository", &"ManagedRepository")
57            .finish()
58    }
59}
60
61impl std::fmt::Debug for ConfigPlane {
62    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
63        f.debug_struct("ConfigPlane")
64            .field("config", &"Config")
65            .field("app_paths", &"AppPaths")
66            .field("content_config", &self.content_config.is_some())
67            .field("route_classifier", &"RouteClassifier")
68            .finish()
69    }
70}
71
72impl std::fmt::Debug for Plugins {
73    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
74        f.debug_struct("Plugins")
75            .field("extension_registry", &self.extension_registry)
76            .field("api_registry", &"ModuleApiRegistry")
77            .field("mcp_registry", &"RegistryService")
78            .field("marketplace_filter", &self.marketplace_filter)
79            .field("marketplace_cache", &self.marketplace_cache)
80            .finish()
81    }
82}
83
84impl std::fmt::Debug for Subsystems {
85    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
86        f.debug_struct("Subsystems")
87            .field("system_admin", &self.system_admin.username())
88            .field("authz_hook", &"SharedAuthzHook")
89            .field("governance", &self.governance)
90            .field("schema_install_clean", &self.schema_install.is_clean())
91            .field("event_bridge", &self.event_bridge.get().is_some())
92            .field("geoip_reader", &self.geoip_reader.is_some())
93            .field("file_storage", &"FileStorage")
94            .field("shutdown", &"ShutdownRequest")
95            .field("publish_guard", &"Mutex<PublishGuard>")
96            .field("snapshot_wakeup", &self.snapshot_wakeup)
97            .finish()
98    }
99}