Skip to content

Latest commit

 

History

History
25 lines (17 loc) · 835 Bytes

sparse.md

File metadata and controls

25 lines (17 loc) · 835 Bytes

Sparse File Format

Directory format within fat32. Values within {} are wildcards.

└── ids
    └── {first_obj_id_char:0-f}
        └── {full_obj_id}
            ├── .metadata
            └── chunks
                └── {chunk_id}

All objects are assumed to be sparse.

If a write partially spans an existing range and partially spans empty space after that existing range then the {chunk_id} file will get appended to. If a write partially spans an existing range and partially spans empty space before the beginning of the existing range then a new file will be created and the existing file will be appended to the new one.

.metadata will store the tree which is used to find ranges.

file.extend_with(other: File)

pub fn extend_with(&mut self, other: File);