This is a big commit where I learned how to do proper error tracking, including handling From properly, and deriving it in some cases. The record subcommand still is not implemented but will be easier now that I decided to use SQLite temp tables as my data structure. This means I can simply implement a few loops in the fs submodule in order to scan directories, and dump entries into temp tables. When finished, I'll drop the tables. This is nice because SQLite already contains a very efficient BTree implementation that we can use with indices on these temp tables. It also means we don't have to hold possibly millions of directory entries in memory, and most importantly, we don't have to figure out a bidirectional tree structure in rust.
30 lines
741 B
TOML
30 lines
741 B
TOML
[package]
|
|
name = "nancy"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
authors = ["Jacob Hinkle <jacob.hinkle@jhink.org>"]
|
|
description = "Composable provenance tracking for scientific data analysis"
|
|
repository = "https://git.jhink.org/jacob/nancy"
|
|
readme = "README.md"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[lib]
|
|
name = "nancy"
|
|
path = "src/lib.rs"
|
|
|
|
[[bin]]
|
|
name = "nancy"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
clap = { version = "4.0.14", features = ["derive"] }
|
|
derive_more = "0.99.17"
|
|
env_logger = "0.9.1"
|
|
log = "0.4.17"
|
|
once_cell = "1.15.0"
|
|
rusqlite = { version = "0.28.0", features = ["uuid"] }
|
|
rusqlite_migration = "1.0.0"
|
|
sha2 = "0.10.6"
|
|
uuid = { version = "1.2.1", features = ["v4"] }
|