uf-crsf 0.6.0

A `no_std` Rust library for parsing the TBS Crossfire protocol, designed for embedded environments
Documentation
# List available recipes
default:
  just --list

alias b := build
alias t := test
alias l := lint

# Run cargo doc
doc:
  cargo doc --all-features --no-deps --open

# Run cargo build
build:
  cargo build
  cargo build --examples --features=embedded_io_async,embedded_io

# Run cargo clean
clean:
  cargo clean --verbose

# Install cargo tools used in package maintenance
install_dev_tools:
  cargo install --locked release-plz
  cargo install --locked cargo-audit
  cargo install --locked cargo-outdated
  cargo install --locked cargo-llvm-cov
  cargo install --locked cargo-expand
  echo "libudev-dev required to compile/run examples that uses serialport"
  echo "Relevant package may need to be installed: sudo apt install -y libudev-dev"

# Format source code with cargo fmt
fmt:
  cargo fmt --all

# Lint source code CI linter
lint:
  cargo check
  cargo clippy --all -- -D warnings

# Run example local_std that parses packets incoming via USB serial port.
example_std:
  cargo run --example=std

# Run example local_raw that parses raw packets incoming via USB serial port.
example_raw:
  cargo run --example=raw

# Run example local_simple that parses hard coded buffer.
example_simple:
  cargo run --example=simple

# Run example local_simple that parses hard coded buffer.
example_async:
  cargo run --example=async --all-features

# Run example local_simple that parses hard coded buffer.
example_blocking:
  cargo run --example=blocking --all-features


# Lint source code with strict linter
pedantic:
  cargo clippy -- -W clippy::pedantic

# Run cargo audit to vet dependencies
audit:
  cargo audit

set positional-arguments
# Run tests for all features
test args='':
  cargo test --all-features $1 -- --show-output

# Run llvm-cov code coverage tool and open report in browser
cov:
  cargo llvm-cov --open

# Run same testing commands as on CI server
ci:
  just lint
  just build
  cargo test --all-features
  cargo test --examples --features=embedded_io_async,embedded_io