# Run cargo fmt and clippy for both features
lint: fmt clippy
# Format the code
fmt:
cargo fmt --all
# Run clippy for both features
clippy:
@echo "Running clippy with MessagePack feature..."
cargo clippy --all-targets --features message_pack -- -D warnings
@echo "Running clippy with JSON feature..."
cargo clippy --all-targets --no-default-features --features json -- -D warnings
# Run tests for both JSON and MessagePack features
test:
@echo "Testing with MessagePack feature (default)..."
cargo test --features message_pack
@echo "Testing with JSON feature..."
cargo test --no-default-features --features json
# Run tests for MessagePack only
test-msgpack:
cargo test --features message_pack
# Run tests for JSON only
test-json:
cargo test --no-default-features --features json
# Build the project with both features
build:
@echo "Building with MessagePack feature (default)..."
cargo build --features message_pack
@echo "Building with JSON feature..."
cargo build --no-default-features --features json
# Build in release mode with both features
build-release:
@echo "Building release with MessagePack feature..."
cargo build --release --features message_pack
@echo "Building release with JSON feature..."
cargo build --release --no-default-features --features json
# Run all checks (format, lint, test, build)
check: fmt lint test build
# Clean build artifacts
clean:
cargo clean
# Run examples (requires BETTER_STACK_TOKEN env var)
run-example example:
cargo run --example {{example}}
# Build and test everything
ci: fmt-check lint test build-release
# Check if code is properly formatted (for CI)
fmt-check:
cargo fmt --all -- --check
# Run tests with coverage for both features (requires cargo-tarpaulin)
coverage:
@echo "Running coverage for MessagePack feature..."
cargo tarpaulin --features message_pack --out Html --output-dir coverage-msgpack
@echo "Running coverage for JSON feature..."
cargo tarpaulin --no-default-features --features json --out Html --output-dir coverage-json
# Publish to crates.io (dry run)
publish-dry:
cargo publish --dry-run
# Publish to crates.io
publish:
cargo publish