liminal_server/server/
connection.rs1#[path = "connection/apply.rs"]
2mod apply;
3#[path = "connection/channel_registry.rs"]
4pub mod channel_registry;
5#[path = "connection/conversation.rs"]
6mod conversation;
7#[path = "connection/delivery.rs"]
8mod delivery;
9#[path = "connection/incarnation.rs"]
10mod incarnation;
11#[cfg(test)]
12#[path = "connection/incarnation_tests.rs"]
13mod incarnation_tests;
14mod lifecycle_route;
15mod link_route;
16#[path = "connection/loopback.rs"]
17mod loopback;
18#[path = "connection/notifier.rs"]
19pub mod notifier;
20#[path = "connection/outbound.rs"]
21mod outbound;
22#[path = "connection/participant_delivery.rs"]
23mod participant_delivery;
24#[cfg(test)]
25#[path = "connection/participant_runtime_tests.rs"]
26mod participant_runtime_tests;
27#[path = "connection/pending_reply.rs"]
28mod pending_reply;
29#[path = "connection/pre_admission.rs"]
30pub(crate) mod pre_admission;
31#[path = "connection/process.rs"]
32mod process;
33#[path = "connection/reclaim_placement.rs"]
34pub(crate) mod reclaim_placement;
35#[cfg(test)]
36#[path = "connection/reclaim_placement_tests.rs"]
37mod reclaim_placement_tests;
38#[path = "connection/refusal.rs"]
39pub(crate) mod refusal;
40#[cfg(test)]
41#[path = "connection/refusal_tests.rs"]
42mod refusal_tests;
43#[path = "connection/service_directory.rs"]
44mod service_directory;
45mod service_route;
46#[path = "connection/services.rs"]
47pub mod services;
48#[cfg(test)]
49#[path = "connection/services_a1_dedup_tests.rs"]
50mod services_a1_dedup_tests;
51#[cfg(test)]
52#[path = "connection/services_adopt_config_tests.rs"]
53mod services_adopt_config_tests;
54#[path = "connection/services_cluster.rs"]
55mod services_cluster;
56#[cfg(test)]
57#[path = "connection/services_r5_tests.rs"]
58mod services_r5_tests;
59#[path = "connection/services_schema.rs"]
60mod services_schema;
61#[cfg(test)]
62#[path = "connection/services_unresolved_restart_tests.rs"]
63mod services_unresolved_restart_tests;
64#[cfg(test)]
65#[path = "connection/services_unresolved_tests.rs"]
66mod services_unresolved_tests;
67#[path = "connection/state.rs"]
68mod state;
69#[path = "connection/supervisor.rs"]
70mod supervisor;
71#[cfg(test)]
72#[path = "connection/tests_no_path_refusal.rs"]
73mod tests_no_path_refusal;
74#[path = "connection/wake.rs"]
75pub(crate) mod wake;
76#[path = "connection/websocket.rs"]
77pub(crate) mod websocket;
78#[path = "connection/worker_front_door.rs"]
79mod worker_front_door;
80#[path = "connection/worker_route.rs"]
81mod worker_route;
82
83pub use channel_registry::{
84 CONSOLE_NAMESPACE_PREFIX, CONSOLE_TAP_PREFIX, ChannelAccessError, ChannelConfigField,
85 ChannelDescriptor, ChannelOrigin, ChannelRegistration, ChannelRegistryError, ChannelState,
86 ChannelStatus, MAX_CHANNELS_KEY, Registered, console_tap_target, is_console_subject,
87};
88pub use conversation::{ConnectionConversation, ConversationResource};
89pub use loopback::{LoopbackClientEnd, LoopbackDuplex};
96pub use notifier::{CheckpointCrossing, ConnectionNotifier, CrossingBinding, CrossingRecipient};
97#[cfg(test)]
98pub(crate) const fn assert_held_heads_are_move_only() {
99 macro_rules! assert_not_impl {
100 ($type:ty: $trait:path) => {
101 const _: fn() = || {
102 struct Probe<T: ?Sized>(core::marker::PhantomData<T>);
103 trait AmbiguousIfImplemented<A> {
104 fn probe() {}
105 }
106 impl<T: ?Sized> AmbiguousIfImplemented<()> for Probe<T> {}
107 impl<T: ?Sized + $trait> AmbiguousIfImplemented<u8> for Probe<T> {}
108 let _ = <Probe<$type> as AmbiguousIfImplemented<_>>::probe;
109 };
110 };
111 }
112 assert_not_impl!(participant_delivery::HeldParticipantHead: Clone);
113 assert_not_impl!(participant_delivery::HeldParticipantHead: Copy);
114 assert_not_impl!(participant_delivery::HeldObserverHead: Clone);
115 assert_not_impl!(participant_delivery::HeldObserverHead: Copy);
116}
117pub use services::{
118 ChannelCluster, ChannelOperation, ConnectionServices, ConnectionSubscription,
119 LiminalConnectionServices, PublishOutcome, build_connection_services,
120};
121pub use supervisor::start_context_watch;
122pub use supervisor::{
123 ConnectionHandle, ConnectionSupervisor, ConnectionSupervisorBuilder, PushReplyAwaiter,
124};
125pub(crate) use supervisor::{LysInstall, configured_lys, lys_ask_runtime};
126pub(crate) use wake::ReadyWaker;
127pub use websocket::WebSocketListener;
128pub use worker_front_door::WorkerFrontDoorServices;