Skip to main content

Library Usage

·148 words

📖 Library Usage
#

lis can be integrated as a library into your own Rust projects.

🛠️ Basic Usage
#

To list entries in the current directory:

use lis::Lis;
use std::path::PathBuf;

fn main() {
    let entries = Lis::new(PathBuf::from(".")).list();

    for entry in entries {
        println!("{:<10} {}", entry.mode, entry.name);
    }
}

🏗️ Using LisBuilder
#

For more control over the listing behavior, use LisBuilder.

use lis::LisBuilder;

fn main() {
    let lis = LisBuilder::new()
        .all(true)       // Include hidden files
        .recursive(false)
        .build(".");

    let entries = lis.list();
    for entry in entries {
        println!("{}: {}", entry.name, entry.git_status);
    }
}

📊 Advanced Sorting
#

You can also use the sorting utilities provided by the library.

use lis::entry::{SortBy, sort_entries};

fn main() {
    let mut entries = lis::LisBuilder::new()
        .recursive(true)
        .all(true)
        .build(".")
        .list();

    // Sort by size, descending (reverse=true)
    sort_entries(&mut entries, SortBy::Size, true);

    for entry in entries.iter().take(10) {
        println!(
            "{:<10} {:>10} {}",
            entry.mode, entry.size, entry.name
        );
    }
}