gemini_genai_rs/transport/
mod.rs1pub mod auth;
4pub mod backpressure;
5pub mod builder;
6pub mod codec;
7pub mod connection;
8pub mod recording;
9pub mod replay;
10pub mod ws;
11
12pub use auth::{AuthProvider, GoogleAIAuth, GoogleAITokenAuth, ServiceEndpoint, VertexAIAuth};
13pub use backpressure::{BackpressureConfig, TokenBucket};
14pub use builder::ConnectBuilder;
15pub use codec::{Codec, CodecError, JsonCodec};
16pub use connection::connect;
17pub use recording::{
18 FileWireRecorder, MemoryWireRecorder, RecordingCodec, WireDirection, WireEntry, WireLogError,
19 WireRecorder, WireRecorderHandle, parse_wire_log, read_wire_log,
20};
21pub use replay::{OutboundFrames, ReplayControl, ReplayTransport, ReplayTransportError};
22pub use ws::{
23 MockTransport, MockTransportError, Transport, TungsteniteError, TungsteniteTransport,
24};
25
26#[derive(Debug, Clone)]
28pub struct TransportConfig {
29 pub send_queue_depth: usize,
31 pub event_channel_capacity: usize,
33 pub connect_timeout_secs: u64,
35 pub setup_timeout_secs: u64,
37 pub max_reconnect_attempts: u32,
39 pub reconnect_base_delay_ms: u32,
41 pub reconnect_max_delay_ms: u32,
43}
44
45impl Default for TransportConfig {
46 fn default() -> Self {
47 Self {
48 send_queue_depth: 256,
49 event_channel_capacity: 512,
50 connect_timeout_secs: 10,
51 setup_timeout_secs: 15,
52 max_reconnect_attempts: 5,
53 reconnect_base_delay_ms: 1000,
54 reconnect_max_delay_ms: 30_000,
55 }
56 }
57}