rucksack_db/
lib.rs

1pub mod crypto;
2pub mod csv;
3pub mod db;
4pub mod records;
5pub mod store;
6pub mod testing;
7
8pub use records::{
9    default_metadata, default_secrets, key, new_tag, new_tags, secrets_from_user_pass,
10    DecryptedRecord, EncryptedRecord, Metadata, Secrets, Status, Tag,
11};
12
13// This is the library version and shouldn't be used for schema versions. Instead,
14// use crate::db::version (which points to crate::records::version).
15pub fn version() -> versions::SemVer {
16    versions::SemVer::new(env!("CARGO_PKG_VERSION"))
17        .expect("CARGO_PKG_VERSION must be valid semver format")
18}
19
20#[cfg(test)]
21mod tests {
22    use super::*;
23
24    #[test]
25    fn test_version() {
26        let version = version();
27        assert_eq!(version.major, 0);
28        assert!(version.minor >= 10);
29    }
30
31    #[test]
32    fn test_reexports() {
33        // Test that re-exported functions are accessible
34        let secrets = default_secrets();
35        assert_eq!(secrets.user, "");
36
37        let secrets2 = secrets_from_user_pass("user", "pass");
38        assert_eq!(secrets2.user, "user");
39
40        let metadata = default_metadata();
41        assert!(!metadata.name.is_empty() || metadata.name.is_empty());
42
43        let tag = new_tag("test".to_string());
44        assert_eq!(tag.value, "test");
45
46        let tags = new_tags(vec!["t1".to_string(), "t2".to_string()]);
47        assert_eq!(tags.len(), 2);
48    }
49}