hypershell-tungstenite-components 0.1.0

Modular DSL for shellscripting in Rust
Documentation
#[cgp::re_export_imports]
mod preset {
    use std::vec::Vec;

    use cgp::extra::handler::{PipeHandlers, UseInputDelegate};
    use cgp::prelude::*;
    use hypershell_components::dsl::{BytesToStream, WebSocket};
    use hypershell_components::providers::Call;
    use hypershell_tokio_components::providers::{FuturesToTokioAsyncRead, WrapFuturesAsyncRead};
    use hypershell_tokio_components::types::{FuturesAsyncReadStream, TokioAsyncReadStream};

    use crate::providers::HandleWebsocket;

    cgp_preset! {
        #[wrap_provider(UseDelegate)]
        TungsteniteHandlerPreset {
            <Url, Params> WebSocket<Url, Params>:
                WebSocketHandlers::Provider,
        }
    }

    cgp_preset! {
        #[wrap_provider(UseInputDelegate)]
        WebSocketHandlers {
            <S> FuturesAsyncReadStream<S>:
                PipeHandlers<Product![
                    FuturesToTokioAsyncRead,
                    HandleWebsocket,
                    WrapFuturesAsyncRead,
                ]>,
            <S> TokioAsyncReadStream<S>:
                PipeHandlers<Product![
                    HandleWebsocket,
                    WrapFuturesAsyncRead,
                ]>,
            Vec<u8>:
                PipeHandlers<Product![
                    Call<BytesToStream>,
                    HandleWebsocket,
                    WrapFuturesAsyncRead,
                ]>,
        }
    }
}