hypershell 0.1.0

Modular DSL for shellscripting in Rust
Documentation
#[cgp::re_export_imports]
mod preset {
    use core::convert::Infallible;
    use core::str::Utf8Error;
    use std::io::Error as StdIoError;

    use cgp::core::component::UseDelegate;
    use cgp::core::error::{
        ErrorRaiserComponent, ErrorTypeProviderComponent, ErrorWrapperComponent,
    };
    use cgp::extra::error::{RaiseInfallible, ReturnError};
    use cgp::prelude::*;
    use cgp_error_anyhow::{DebugAnyhowError, Error, RaiseAnyhowError, UseAnyhowError};
    use hypershell_components::presets::{
        BaseHandlerPreset, BaseStringArgExtractorPreset, HypershellBasePreset,
    };
    use hypershell_json_components::presets::{HypershellJsonPreset, JsonHandlerPreset};
    use hypershell_reqwest_components::components::ReqwestClientGetterComponent;
    use hypershell_reqwest_components::presets::{
        HypershellReqwestPreset, ReqwestHandlerPreset, ReqwestStringArgExtractorPreset,
    };
    use hypershell_reqwest_components::providers::ErrorResponse;
    use hypershell_tokio_components::presets::{HypershellTokioPreset, TokioHandlerPreset};
    use hypershell_tokio_components::providers::ExecOutputError;
    use reqwest::Error as ReqwestError;
    use reqwest::header::{InvalidHeaderName, InvalidHeaderValue};
    use serde_json::Error as JsonError;
    use url::ParseError;

    cgp_preset! {
        HypershellPreset:
            HypershellBasePreset
            + HypershellTokioPreset
            + HypershellReqwestPreset
            + HypershellJsonPreset
        {
            ErrorTypeProviderComponent:
                UseAnyhowError,
            ErrorRaiserComponent:
                HypershellErrorHandlers::Provider,
            ErrorWrapperComponent:
                DebugAnyhowError,
            ReqwestClientGetterComponent:
                UseField<symbol!("http_client")>,
            override StringArgExtractorComponent:
                HypershellStringArgExtractorPreset::Provider,
            override HandlerComponent:
                HypershellHandlerPreset::Provider,
        }
    }

    cgp_preset! {
        #[wrap_provider(UseDelegate)]
        HypershellErrorHandlers {
            Error: ReturnError,
            Infallible: RaiseInfallible,
            [
                StdIoError,
                Utf8Error,
                ReqwestError,
                ParseError,
                InvalidHeaderName,
                InvalidHeaderValue,
                JsonError,
            ]:
                RaiseAnyhowError,
            [
                ExecOutputError,
                ErrorResponse,
            ]:
                DebugAnyhowError,
        }
    }

    cgp_preset! {
        #[wrap_provider(UseDelegate)]
        HypershellHandlerPreset:
            BaseHandlerPreset
            + TokioHandlerPreset
            + ReqwestHandlerPreset
            + JsonHandlerPreset
        {
        }
    }

    cgp_preset! {
        #[wrap_provider(UseDelegate)]
        HypershellStringArgExtractorPreset:
            BaseStringArgExtractorPreset
            + ReqwestStringArgExtractorPreset
        { }
    }
}