json_archive/
lib.rs

1// json-archive is a tool for tracking JSON file changes over time
2// Copyright (C) 2025  Peoples Grocers LLC
3//
4// This program is free software: you can redistribute it and/or modify
5// it under the terms of the GNU Affero General Public License as published
6// by the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// This program is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12// GNU Affero General Public License for more details.
13//
14// You should have received a copy of the GNU Affero General Public License
15// along with this program.  If not, see <https://www.gnu.org/licenses/>.
16//
17// To purchase a license under different terms contact admin@peoplesgrocers.com
18// To request changes, report bugs, or give user feedback contact
19// marxism@peoplesgrocers.com
20//
21
22pub mod archive_context;
23pub mod archive_open;
24pub mod archive_ops;
25pub mod archive_reader;
26pub mod archive_writer;
27pub mod atomic_file;
28pub mod detection;
29pub mod diagnostics;
30pub mod diff;
31pub mod event_deserialize;
32pub mod events;
33pub mod flags;
34pub mod pointer;
35mod pointer_errors;
36
37pub use archive_writer::{
38    append_to_archive, create_archive_from_files, default_output_filename, ArchiveBuilder, ArchiveWriter,
39};
40pub use detection::is_json_archive;
41pub use diagnostics::{Diagnostic, DiagnosticCode, DiagnosticCollector, DiagnosticLevel};
42pub use events::{Event, Header, Observation};
43pub use pointer::JsonPointer;
44pub use archive_reader::{apply_add, apply_change, apply_move, apply_remove, ArchiveReader, ReadMode, ReadResult};