Skip to main content

link_cli/
lib.rs

1//! Link CLI Library - Core functionality for links manipulation
2//!
3//! This library provides the core data structures and functionality
4//! for the link-cli tool, implementing a doublet storage system
5//! with LiNo notation support.
6//!
7//! # Modules
8//!
9//! - `link` - The core Link data structure
10//! - `error` - Error types for link operations
11//! - `lino_link` - LiNo link representation
12//! - `parser` - LiNo notation parser
13//! - `link_storage` - Persistent link storage
14//! - `storage` - Reusable storage traits and the doublets-backed store
15//! - `changes_simplifier` - Changes simplification
16//! - `query_processor` - LiNo query processing
17
18mod changes_simplifier;
19pub mod cli;
20mod error;
21mod hybrid_reference;
22mod link;
23mod link_reference_validator;
24mod link_storage;
25mod lino_database_input;
26mod lino_link;
27mod named_links;
28mod named_type_links;
29mod named_types;
30mod parser;
31mod pinned_types;
32mod query_options;
33mod query_processor;
34mod query_processor_substitution;
35mod query_types;
36pub mod sequences;
37pub mod storage;
38pub mod transactions;
39mod unicode_string_storage;
40pub mod version_control;
41
42// Re-export main types for easy access
43pub use changes_simplifier::simplify_changes;
44pub use error::LinkError;
45pub use hybrid_reference::{external_reference, external_reference_value, HybridReference};
46pub use link::{DoubletsLink, GenericLink, Link};
47pub use link_storage::LinkStorage;
48pub use lino_database_input::{import_lino_file, import_lino_text};
49pub use lino_link::LinoLink;
50pub use named_links::NamedLinks;
51pub use named_type_links::NamedTypeLinks;
52pub use named_types::{NamedTypes, NamedTypesDecorator};
53pub use parser::Parser;
54pub use pinned_types::{PinnedTypes, PinnedTypesAccess, PinnedTypesDecorator};
55pub use query_options::QueryOptions;
56pub use query_processor::QueryProcessor;
57pub use storage::{
58    lock_file_path, DoubletsStorage, FileLock, FileMappedUnitStore, LinksStorage, LinksStorageRef,
59    LockMode, PersistentFileMapped, StorageRevision,
60};
61pub use transactions::{
62    CommitMode, DoubletLink, FileTransitionLog, GenericDoubletLink, GenericTransactionsDecorator,
63    GenericTransition, LogRetentionPolicy, TransactionHandle, TransactionsDecorator, Transition,
64    TransitionKind, TransitionLogStore,
65};
66pub use unicode_string_storage::UnicodeStringStorage;
67pub use version_control::{BranchInfo, VersionControlDecorator, DEFAULT_BRANCH_NAME};