/// Creates a module with the current PureScript version
///
/// Will display the PureScript version if any of the following criteria are met:
///     - Current directory contains a `spago.dhall` file
///     - Current directory contains a `*.purs` files
Creates a module with the current PureScript version
Will display the PureScript version if any of the following criteria are met:
Current directory contains a `spago.dhall` file
Current directory contains a `*.purs` files
Creates a module with the current PureScript version Will display the PureScript version if any of the following criteria are met : Current directory contains a ` spago . dhall ` file Current directory contains a ` * . purs ` files
pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> {
    let is_purs_project = context
        .try_begin_scan()?
        .set_files(&["spago.dhall"])
        .set_extensions(&["purs"])
        .is_match();
    if !is_purs_project {
        return None;
    }
    let purs_version = utils::exec_cmd("purs", &["--version"])?.stdout;
    let mut module = context.new_module("purescript");
    let config: PureScriptConfig = PureScriptConfig::try_load(module.config);
    let parsed = StringFormatter::new(config.format).and_then(|formatter| {
        formatter
            .map_meta(|variable, _| match variable {
                "symbol" => Some(config.symbol),
                _ => None,
            })
            .map_style(|variable| match variable {
                "style" => Some(Ok(config.style)),
                _ => None,
            })
            .map(|variable| match variable {
                "version" => Some(Ok(format!("v{}", purs_version.trim()))),
                _ => None,
            })
            .parse(None)
    });
    module.set_segments(match parsed {
        Ok(segments) => segments,
        Err(error) => {
            log::warn!("Error in module `purescript`:\n{}", error);
            return None;
        }
    });
    Some(module)
}
pub fn module < ' a > ( context : & ' a Context ) -> Option < Module < ' a > > { let is_purs_project = context . try_begin_scan ( ) ? . set_files ( & [ " " ] ) . set_extensions ( & [ " " ] ) . is_match ( ) ; if ! is_purs_project { return None ; } let purs_version = utils :: exec_cmd ( " " , & [ " " ] ) ? . stdout ; let mut module = context . new_module ( " " ) ; let config : PureScriptConfig = PureScriptConfig :: try_load ( module . config ) ; let parsed = StringFormatter :: new ( config . format ) . and_then ( | formatter | { formatter . map_meta ( | variable , _ | match variable { " " => Some ( config . symbol ) , _ => None , } ) . map_style ( | variable | match variable { " " => Some ( Ok ( config . style ) ) , _ => None , } ) . map ( | variable | match variable { " " => Some ( Ok ( format ! ( " " purs_version trim ( ) ) ) ) , _ => None , } ) . parse ( None ) } ) ; module . set_segments ( match parsed { Ok ( segments ) => segments , Err ( error ) => { log :: warn ! ( " \n " error ) ; return None ; } } ) ; Some ( module ) }
Creates a module with the current PureScript version
Will display the PureScript version if any of the following criteria are met:
 Current directory contains a `spago.dhall` file
 Current directory contains a `*.purs` files
Creates a module with the current PureScript version Will display the PureScript version if any of the following criteria are met : Current directory contains a ` spago . dhall ` file Current directory contains a ` * . purs ` files
context
&'a Context
<not_specific>