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;
14#[path = "connection/loopback.rs"]
15mod loopback;
16#[path = "connection/notifier.rs"]
17pub mod notifier;
18#[path = "connection/outbound.rs"]
19mod outbound;
20#[path = "connection/participant_delivery.rs"]
21mod participant_delivery;
22#[cfg(test)]
23#[path = "connection/participant_runtime_tests.rs"]
24mod participant_runtime_tests;
25#[path = "connection/pending_reply.rs"]
26mod pending_reply;
27#[path = "connection/process.rs"]
28mod process;
29#[path = "connection/refusal.rs"]
30pub(crate) mod refusal;
31#[cfg(test)]
32#[path = "connection/refusal_tests.rs"]
33mod refusal_tests;
34#[path = "connection/services.rs"]
35pub mod services;
36#[path = "connection/services_cluster.rs"]
37mod services_cluster;
38#[cfg(test)]
39#[path = "connection/services_r5_tests.rs"]
40mod services_r5_tests;
41#[path = "connection/services_schema.rs"]
42mod services_schema;
43#[path = "connection/state.rs"]
44mod state;
45#[path = "connection/supervisor.rs"]
46mod supervisor;
47#[path = "connection/wake.rs"]
48pub(crate) mod wake;
49#[path = "connection/websocket.rs"]
50pub(crate) mod websocket;
51#[path = "connection/worker_front_door.rs"]
52mod worker_front_door;
53
54pub use channel_registry::{
55 ChannelAccessError, ChannelConfigField, ChannelDescriptor, ChannelOrigin, ChannelRegistration,
56 ChannelRegistryError, ChannelState, ChannelStatus, MAX_CHANNELS_KEY, Registered,
57};
58pub use conversation::{ConnectionConversation, ConversationResource};
59pub use loopback::{LoopbackClientEnd, LoopbackDuplex};
66pub use notifier::ConnectionNotifier;
67#[cfg(test)]
68pub(crate) const fn assert_held_heads_are_move_only() {
69 macro_rules! assert_not_impl {
70 ($type:ty: $trait:path) => {
71 const _: fn() = || {
72 struct Probe<T: ?Sized>(core::marker::PhantomData<T>);
73 trait AmbiguousIfImplemented<A> {
74 fn probe() {}
75 }
76 impl<T: ?Sized> AmbiguousIfImplemented<()> for Probe<T> {}
77 impl<T: ?Sized + $trait> AmbiguousIfImplemented<u8> for Probe<T> {}
78 let _ = <Probe<$type> as AmbiguousIfImplemented<_>>::probe;
79 };
80 };
81 }
82 assert_not_impl!(participant_delivery::HeldParticipantHead: Clone);
83 assert_not_impl!(participant_delivery::HeldParticipantHead: Copy);
84 assert_not_impl!(participant_delivery::HeldObserverHead: Clone);
85 assert_not_impl!(participant_delivery::HeldObserverHead: Copy);
86}
87pub use services::{
88 ChannelCluster, ChannelOperation, ConnectionServices, ConnectionSubscription,
89 LiminalConnectionServices, PublishOutcome, build_connection_services,
90};
91pub use supervisor::{ConnectionHandle, ConnectionSupervisor, PushReplyAwaiter};
92pub(crate) use wake::ReadyWaker;
93pub use websocket::WebSocketListener;
94pub use worker_front_door::WorkerFrontDoorServices;