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, connect_with};
17pub use recording::{
18 parse_wire_log, read_wire_log, FileWireRecorder, MemoryWireRecorder, RecordingCodec,
19 WireDirection, WireEntry, WireLogError, WireRecorder, WireRecorderHandle,
20};
21pub use replay::{OutboundFrames, ReplayControl, ReplayTransport, ReplayTransportError};
22pub use ws::{MockTransport, MockTransportError, Transport, TungsteniteTransport};
23
24#[derive(Debug, Clone)]
26pub struct TransportConfig {
27 pub send_queue_depth: usize,
29 pub event_channel_capacity: usize,
31 pub connect_timeout_secs: u64,
33 pub setup_timeout_secs: u64,
35 pub max_reconnect_attempts: u32,
37 pub reconnect_base_delay_ms: u32,
39 pub reconnect_max_delay_ms: u32,
41}
42
43impl Default for TransportConfig {
44 fn default() -> Self {
45 Self {
46 send_queue_depth: 256,
47 event_channel_capacity: 512,
48 connect_timeout_secs: 10,
49 setup_timeout_secs: 15,
50 max_reconnect_attempts: 5,
51 reconnect_base_delay_ms: 1000,
52 reconnect_max_delay_ms: 30_000,
53 }
54 }
55}