ssd1677 0.1.0

Driver for the SSD1677 e-Paper display controller, for use with embedded-hal v1.0
Documentation
# SSD1677 Driver - Justfile
# Common development tasks

# Default recipe - show available commands
default:
    @just --list

# Setup development environment (install rust components)
setup:
    @echo "๐Ÿ”ง Setting up development environment..."
    @echo "Installing required rustup components..."
    rustup component add rustfmt clippy
    @echo "โœ… Setup complete! Run 'just all' to verify everything works."

# Run all checks (format, lint, type-check, test, doc, doctest)
all: format lint type-check test doc-test doc
    @echo "โœ… All checks passed!"

# Format code with rustfmt
format:
    @echo "๐ŸŽจ Formatting code..."
    cargo fmt

# Check formatting without modifying files
check-format:
    @echo "๐Ÿ” Checking code formatting..."
    cargo fmt -- --check

# Run clippy lints
lint:
    @echo "๐Ÿ” Running clippy..."
    cargo clippy --all-features -- -D warnings

# Run clippy with pedantic lints (stricter)
lint-strict:
    @echo "๐Ÿ” Running clippy (strict)..."
    cargo clippy --all-features -- -D warnings -W clippy::pedantic -W clippy::nursery

# Type check the code
type-check:
    @echo "๐Ÿ” Type checking..."
    cargo check --all-features

# Type check without graphics feature
type-check-minimal:
    @echo "๐Ÿ” Type checking (minimal)..."
    cargo check --no-default-features

# Build the crate
build:
    @echo "๐Ÿ”จ Building..."
    cargo build --all-features

# Build release version
build-release:
    @echo "๐Ÿ”จ Building release..."
    cargo build --release --all-features

# Run tests
test:
    @echo "๐Ÿงช Running tests..."
    cargo test --all-features

# Run doctests (docs.rs-like examples)
doc-test:
    @echo "๐Ÿงช Running doc tests..."
    cargo test --doc

# Run doctests marked as ignored (if any)
doc-test-ignored:
    @echo "๐Ÿงช Running ignored doc tests..."
    cargo test --doc -- --ignored

# Run tests without graphics
test-minimal:
    @echo "๐Ÿงช Running tests (minimal)..."
    cargo test --no-default-features

# Build documentation
doc:
    @echo "๐Ÿ“š Building documentation..."
    cargo doc --all-features --no-deps

# Build and open documentation
doc-open:
    @echo "๐Ÿ“š Building and opening documentation..."
    cargo doc --all-features --no-deps --open

# Clean build artifacts
clean:
    @echo "๐Ÿงน Cleaning..."
    cargo clean


# Dry run publish to verify everything is ready
publish-dry:
    @echo "๐Ÿ“ฆ Testing publish (dry run)..."
    cargo publish --dry-run

# Full CI simulation locally
ci: check-format lint type-check test doc-test doc publish-dry
    @echo "โœ… CI checks passed!"

# Fix common issues automatically
fix: format
    @echo "๐Ÿ”ง Running cargo fix..."
    cargo fix --all-features --allow-dirty --allow-staged

# Update dependencies
update:
    @echo "๐Ÿ“ฆ Updating dependencies..."
    cargo update

# Show dependency tree
tree:
    cargo tree

# Show dependency tree with features
tree-features:
    cargo tree -e features

# Generate coverage report (requires cargo-tarpaulin)
coverage:
    @echo "๐Ÿ“Š Generating coverage report..."
    cargo tarpaulin --all-features --out Html

# Check code size (requires cargo-bloat)
size:
    @echo "๐Ÿ“Š Checking code size..."
    cargo bloat --all-features --release

# Run benchmarks (if any)
bench:
    @echo "โšก Running benchmarks..."
    cargo bench --all-features

# Check for outdated dependencies (requires cargo-outdated)
outdated:
    @echo "๐Ÿ“ฆ Checking for outdated dependencies..."
    cargo outdated

# Quick development cycle: check + test
dev:
    @echo "๐Ÿ”„ Quick dev cycle..."
    cargo check --all-features && cargo test --all-features