luff 0.2.1

Print files with formatting
Documentation
//! File printer library
//!
//! This library provides functionality to print file contents with
//! various formatting options, including Markdown code blocks and
//! tree-style directory listings.
#![deny(clippy::all)]
#![deny(clippy::dbg_macro)]
#![deny(clippy::cargo)]
// Allow multiple crate versions - this is unavoidable with complex dependency trees
// The arboard crate (for clipboard) pulls in multiple windows-sys versions via its
// transitive dependencies. This is not a security or correctness issue.
#![allow(clippy::multiple_crate_versions)]
#![warn(clippy::nursery)]
#![deny(clippy::pedantic)]
#![deny(missing_docs)]
#![forbid(unsafe_code)]
#![deny(unused_results)]
#![allow(clippy::collapsible_if)]
#![deny(clippy::missing_docs_in_private_items)]
#![warn(clippy::missing_errors_doc)]
#![warn(clippy::missing_panics_doc)]

#[cfg(feature = "cli")]
pub mod cli;
pub mod config;
pub mod env;
pub mod error;
pub mod format;
pub mod fs_utils;
pub mod git;
pub mod printer;
pub mod walker;

#[cfg(feature = "wasm")]
pub mod wasm;

pub use error::{Error, Result};

/// Library version
pub const VERSION: &str = env!("CARGO_PKG_VERSION");

/// Maximum file size to read
///
/// This limit prevents memory exhaustion attacks and ensures reasonable
/// performance. Files larger than this are skipped during processing.
pub use fs_utils::MAX_FILE_SIZE;

/// Compile-time assertion that `MAX_FILE_SIZE` fits in usize
///
/// This ensures that `MAX_FILE_SIZE` can be safely used with
/// `String::with_capacity` and other usize-based APIs on all platforms,
/// including 32-bit systems.
const _: () = assert!(
    MAX_FILE_SIZE <= usize::MAX as u64,
    "MAX_FILE_SIZE must fit in usize for buffer allocation"
);

/// Re-export commonly used types
pub mod prelude {
    pub use crate::config::Config;
    pub use crate::error::{Error, Result};
    pub use crate::format::OutputFormat;
    pub use crate::printer::PrinterOptions;
    pub use crate::walker::Walker;
}