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