no-std rust_cfg_parser

Parser for rust cfg() expression

1 unstable release

0.1.0 Feb 3, 2022
Download history 58/week @ 2024-07-22 129/week @ 2024-07-29 75/week @ 2024-08-05 119/week @ 2024-08-12 76/week @ 2024-08-19 347/week @ 2024-08-26 365/week @ 2024-09-02 505/week @ 2024-09-09 363/week @ 2024-09-16 120/week @ 2024-09-23 37/week @ 2024-09-30 28/week @ 2024-10-07 71/week @ 2024-10-14 52/week @ 2024-10-21 38/week @ 2024-10-28 28/week @ 2024-11-04

206 downloads per month

MIT license

20KB
403 lines

rust_cfg_parser - Parser for rust cfg() expression

Build Status Crates.io Docs

Usage

To use rust_cfg_parser in your project, add the following to your Cargo.toml:

[dependencies]
rust_cfg_parser = "0.1.0"

Example

use rust_cfg_parser::{CfgValue, parse};

let expr = parse("cfg(windows)").unwrap();

let matches = expr.matches(&[CfgValue::Name("linux".to_string())]);
assert_eq!(false, matches);

let matches = expr.matches(&[CfgValue::Name("windows".to_string())]);
assert_eq!(true, matches);

let expr = parse("cfg(all(any(target_arch =\"x86_64\", target_arch = \"aarch64\"), target_os = \"windows\"))").unwrap();
assert_eq!(
    true,
    expr.matches(&[
        CfgValue::KeyPair("target_arch".to_string(), "x86_64".to_string()),
        CfgValue::KeyPair("target_os".to_string(), "windows".to_string())
    ])
);

License: MIT

Dependencies

~4KB