Skip to main content

sim_table_fs/
lib.rs

1#![forbid(unsafe_code)]
2#![allow(deprecated)]
3#![deny(missing_docs)]
4//! Filesystem-backed table store for SIM.
5//!
6//! This crate exposes a host directory as a SIM table: each table key maps to a
7//! file, and nested tables map to subdirectories. Reads are gated by `fs/read`;
8//! writes, deletes, and directory mutation are gated by `fs/write`.
9//! Compatibility `table.fs.*` aliases are accepted by the gates. Values are encoded through
10//! the configured codec. With the optional format features enabled, recognized
11//! extensions (for example `.mid`, `.music`, `.tone`, `.scl`, `.ly`) round-trip
12//! through their domain shapes. `FsDir::edit` patches string leaves with
13//! `fs/read` and `edit`, then writes by same-directory temp file and rename.
14//! `FsDir::find_grep` and `FsDir::find_glob` search the directory read-only
15//! with `fs/read` and `find`.
16
17pub mod capabilities;
18mod citizen;
19mod dir_edit;
20mod find;
21mod fs_dir;
22mod roadmap11;
23
24pub use capabilities::{
25    table_fs_capability, table_fs_edit_capability, table_fs_find_capability,
26    table_fs_mkdir_capability, table_fs_read_capability, table_fs_rmdir_capability,
27    table_fs_write_capability,
28};
29pub use citizen::{FsDirDescriptor, fs_dir_class_symbol};
30pub use find::{FindGlobResult, FindGrepResult, FindMatch};
31pub use fs_dir::{FsDir, install_fs_dir_lib};
32
33/// Cookbook recipes for this lib, embedded at build time.
34pub static RECIPES: sim_cookbook::EmbeddedDir =
35    include!(concat!(env!("OUT_DIR"), "/cookbook_recipes.rs"));
36
37#[cfg(test)]
38mod tests;