fire_http_api/stream/
util.rs1use fire::extractor::ExtractorError;
2
3use crate::error::Error;
4use crate::ApiError;
5
6use super::error::UnrecoverableError;
7use super::message::MessageData;
8use super::streamer::RawStreamer;
9use super::{Stream, Streamer};
10
11pub fn deserialize_req<S: Stream>(
12 msg: MessageData,
13) -> Result<S, UnrecoverableError> {
14 msg.deserialize()
15 .map_err(|e| format!("failed to deserialize stream request {e}").into())
16}
17
18#[inline]
19pub fn transform_streamer<S: Stream>(
20 streamer: RawStreamer,
21) -> Streamer<S::Message> {
22 streamer.assign_message()
23}
24
25pub fn extraction_error<S: Stream>(e: impl ExtractorError) -> S::Error {
26 S::Error::from_error(Error::ExtractionError(e.into_std()))
27}
28
29pub fn error_to_data<S: Stream>(
30 r: Result<(), S::Error>,
31) -> Result<MessageData, UnrecoverableError> {
32 match r {
33 Ok(_) => Ok(MessageData::null()),
34 Err(e) => {
35 MessageData::serialize(e).map_err(|e| e.to_string().into())
37 }
38 }
39}