Skip to main content

DevelopmentNodeEnvironment_MicrosoftVSCodeDependency_22NodeVersion_Bundle_Clean_Debug_ElectronProfile_EsbuildCompiler_Mountain/Vine/
Client.rs

1//! Vine client - thread-safe gRPC client for a Cocoon sidecar process.
2//! Pool of `CocoonClient` connections keyed by identifier, automatic
3//! reconnect with exponential back-off, per-connection health metadata,
4//! per-call timeouts, message-size validation, and a broadcast fan-out
5//! of every observed notification.
6//!
7//! Atomized layout (one entry-point per file):
8//!   - `MarkShutdown::Fn` / `IsShuttingDown::Fn` - process-wide flag.
9//!   - `NotificationFrame::Struct` - broadcast payload.
10//!   - `SubscribeNotifications::Fn` / `SubscriberCount::Fn` - fan-out access.
11//!   - `ConnectToSideCar::Fn` / `DisconnectFromSideCar::Fn` - pool lifecycle.
12//!     Driven by `TryConnectSingle::Fn` (single attempt).
13//!   - `IsClientConnected::Fn` / `WaitForClientConnection::Fn` -
14//!     boot-race-friendly readiness checks.
15//!   - `CheckSideCarHealth::Fn` - pool + metadata health summary.
16//!   - `SendRequest::Fn` / `SendNotification::Fn` - wire dispatch with optional
17//!     streaming-multiplexer fast path under `LAND_VINE_STREAMING=1`.
18//!   - `PublishNotification::Fn` (private) and `PublishNotificationFromMux::Fn`
19//!     (`pub(crate)`) - broadcast publishers.
20//!   - `Shared` - module-private state (statics, helpers, constants).
21
22pub mod CheckSideCarHealth;
23
24pub mod ConnectToSideCar;
25
26pub mod DisconnectFromSideCar;
27
28pub mod IsClientConnected;
29
30pub mod IsShuttingDown;
31
32pub mod MarkShutdown;
33
34pub mod NotificationFrame;
35
36pub mod PublishNotificationFromMux;
37
38pub mod SendNotification;
39
40pub mod SendRequest;
41
42pub mod SubscribeNotifications;
43
44pub mod SubscriberCount;
45
46pub mod WaitForClientConnection;
47
48pub(crate) mod PublishNotification;
49
50pub(crate) mod Shared;
51
52pub(crate) mod TryConnectSingle;