gproxy_protocol/adapt/generate/stream/
mod.rs1mod binding;
4pub mod bridge;
5pub mod event;
6pub mod fanout;
7mod history;
8mod invoke;
9mod next;
10mod output;
11mod prepare;
12pub mod reader;
13mod resource_map;
14pub mod synthesize;
15pub mod websocket;
16
17pub use history::ResponsesHistoryCache;
18pub use history::response_output_as_input;
19pub use invoke::{StreamChunk, StreamInvocation, StreamSettings, StreamStart, StreamTarget};
20pub use prepare::{
21 ChatViaGeminiStreamFacts, ClaudeViaGeminiStreamFacts, GeminiViaClaudeStreamFacts,
22 ResponsesViaClaudeStreamFacts, ResponsesViaGeminiStreamFacts,
23};
24
25fn invalid(message: impl Into<String>) -> crate::transform::TransformError {
26 crate::transform::TransformError::invalid_result("generation.stream", message)
27}
28
29fn conflict(message: impl Into<String>) -> crate::transform::TransformError {
30 crate::transform::TransformError::new(
31 crate::transform::TransformErrorKind::Conflict,
32 "generation.stream",
33 message,
34 )
35}
36
37fn missing(message: impl Into<String>) -> crate::transform::TransformError {
38 crate::transform::TransformError::new(
39 crate::transform::TransformErrorKind::MissingState,
40 "generation.stream",
41 message,
42 )
43}
44
45fn limit(message: impl Into<String>) -> crate::transform::TransformError {
46 crate::transform::TransformError::new(
47 crate::transform::TransformErrorKind::Limit,
48 "generation.stream",
49 message,
50 )
51}
52
53fn codec_error(e: crate::codec::CodecError) -> crate::transform::TransformError {
54 let kind = match e.kind() {
55 crate::codec::CodecErrorKind::Limit => crate::transform::TransformErrorKind::Limit,
56 crate::codec::CodecErrorKind::Transport => crate::transform::TransformErrorKind::Host,
57 _ => crate::transform::TransformErrorKind::InvalidResult,
58 };
59 crate::transform::TransformError::with_source(kind, "generation.stream.codec", e.to_string(), e)
60}