ufs 0.1.2

ufs embed files and read from disk
Documentation
<div style="display: flex; align-items: center; justify-content: center; flex-direction: column; width: 100%;">
    <h1>ufs</h1>
    <h3>embed dirs & walk local dirs</h3>
</div>

<div style="display: flex; align-items: center; justify-content: center; flex-direction: row; width: 100%; gap: 5px;">
    <div style="display: flex; flex-direction: column; align-items: center; padding: 5px 10px; background: rgba(0, 0, 0, 0.1); border-radius: 5px;">
        <b style="font-size: 12px; padding: 5px 10px;">ufs</b>
        <a href="https://crates.io/crates/ufs">
            <img src="https://img.shields.io/crates/v/ufs?style=flat-square">
        </a>
    </div>
    <div style="display: flex; flex-direction: column; align-items: center; padding: 5px 10px; background: rgba(0, 0, 0, 0.1); border-radius: 5px;">
        <b style="font-size: 12px; padding: 5px 10px;">ufs-macros</b>
        <a href="https://crates.io/crates/ufs-macros" style="margin: 0; padding: 0;">
            <img src="https://img.shields.io/crates/v/ufs-macros?style=flat-square">
        </a>
    </div>
</div>

<br>

**Extract Archives**
 + Endings Supported: `.7z` `.zip` `.tar` `.tar.gz` `.tgz` `.tar.xz` `.txz`
 + in terms of speed is the `tar` section the fastest.

<br>

### Examples


<br>

**`Embed Dir`**

```rust
use ufs::bind_dir;

fn main() -> anyhow::Result<()> {

    let unifs = bind_dir!("examples/files");

    for item in unifs.iter() {
        println!("embed > {:?}", item);
    }

} 
```


**`Static Dir`**

```rust
use ufs::UnifiedFS;

fn main() -> anyhow::Result<()> {

    let unifs = UnifiedFS::new();

    for item in unifs.walk(concat!(env!("CARGO_MANIFEST_DIR"), "/examples/files")) {
        println!("embed > {:?}", item);
    }

} 
```


**`Embed dir & walk Static`**

```rust
use ufs::{ bind_dir, UnifiedFS };

fn main() -> anyhow::Result<()> {

    // Embed Files
    let unifs = bind_dir!("examples/files");

    for item in unifs.iter() {
        println!("embed > {:?}", item);
    }

    // Walk in Local Folders
    for item in unifs.walk(concat!(env!("CARGO_MANIFEST_DIR"), "/examples/files")) {
        println!("local > {:?}", item);
    }

} 
```


**`Extract Archives in Embed dir & walk Static`**

```rust
use ufs::{ bind_dir, UnifiedFS, AchiveExt };

fn main() -> anyhow::Result<()> {
    //for item in bind_dir!("examples/files").iter() {
    for item in unifs.walk(concat!(env!("CARGO_MANIFEST_DIR"), "/examples/files")) {
        if item.is_archive() {
            item.archive()?.entries(|mut entry| {
                println!("{:?} > {:?}", item.path, entry.content().unwrap().len());
            })?;
        }
    }
} 
```