diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 468f0b4..8f65579 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,16 +18,20 @@ jobs: test: runs-on: ubuntu-latest + matrix: + - strace-parser: [combinator, peg, regex] steps: - uses: actions/checkout@v4 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable - - run: cargo test --bins --verbose + - run: cargo test --bins --no-default-features --features strace-parser-${{matrix.strace-parser}} --verbose clippy: runs-on: ubuntu-latest + matrix: + - strace-parser: [combinator, peg, regex] steps: - uses: actions/checkout@v4 - uses: actions-rs/toolchain@v1 @@ -35,7 +39,7 @@ jobs: profile: minimal toolchain: stable components: clippy - - run: cargo clippy -- -D warnings + - run: cargo clippy --no-default-features --features strace-parser-${{matrix.strace-parser}} -- -D warnings fmt: runs-on: ubuntu-latest diff --git a/Cargo.toml b/Cargo.toml index e676f02..775b6e9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -39,13 +39,12 @@ predicates = { version = "3.0.3", default-features = false, features = ["color"] pretty_assertions = { version = "1.4.0", default-features = false, features = ["std"] } [features] -default = ["parser-combinator"] +default = ["strace-parser-combinator"] as-root = [] # for tests only nightly = [] # for benchmarks only -parser-combinator = ["dep:function_name", "dep:nom"] -parser-peg = ["dep:pest", "dep:pest_derive"] -parser-regex = [] -function_name = ["dep:function_name"] +strace-parser-combinator = ["dep:function_name", "dep:nom"] +strace-parser-peg = ["dep:pest", "dep:pest_derive"] +strace-parser-regex = [] [lints.rust] missing_docs = "warn" diff --git a/src/strace/parser/mod.rs b/src/strace/parser/mod.rs index a5f8380..91d6f6a 100644 --- a/src/strace/parser/mod.rs +++ b/src/strace/parser/mod.rs @@ -8,18 +8,18 @@ use std::{ use crate::strace::Syscall; -#[cfg(feature = "parser-combinator")] +#[cfg(feature = "strace-parser-combinator")] mod combinator; -#[cfg(feature = "parser-peg")] +#[cfg(feature = "strace-parser-peg")] mod peg; -#[cfg(feature = "parser-regex")] +#[cfg(feature = "strace-parser-regex")] mod regex; -#[cfg(feature = "parser-combinator")] +#[cfg(feature = "strace-parser-combinator")] use combinator::parse_line; -#[cfg(feature = "parser-peg")] +#[cfg(feature = "strace-parser-peg")] use peg::parse_line; -#[cfg(feature = "parser-regex")] +#[cfg(feature = "strace-parser-regex")] use regex::parse_line; pub struct LogParser {