Skip to main content

sqlite_diff_rs/
lib.rs

1#![doc = include_str!("../README.md")]
2#![no_std]
3#![deny(clippy::mod_module_files)]
4#![allow(private_bounds, private_interfaces)]
5
6extern crate alloc;
7
8pub mod builders;
9#[cfg(any(test, feature = "testing"))]
10pub mod differential_testing;
11pub(crate) mod encoding;
12pub mod errors;
13#[cfg(feature = "maxwell")]
14pub mod maxwell;
15pub mod parser;
16#[cfg(feature = "pg-walstream")]
17pub mod pg_walstream;
18#[cfg(feature = "pg-walstream")]
19pub mod pg_walstream_reverse;
20pub mod schema;
21#[cfg(any(test, feature = "testing"))]
22pub mod testing;
23#[cfg(feature = "wal2json")]
24pub mod wal2json;
25pub mod wire;
26
27// Re-export main types
28#[cfg(feature = "diesel")]
29pub use builders::{Adapter, ApplyOps, Binder, BoundPatchsetOp, DefaultBinder};
30pub use builders::{
31    ChangeDelete, ChangeSet, ChangesetFormat, ChangesetOp, ChangesetUpdatePair, ColumnNames,
32    DiffOps, DiffSet, DiffSetBuilder, Indirect, Insert, PatchDelete, PatchSet, PatchsetFormat,
33    PatchsetOp, PatchsetUpdateEntry, Reverse, Update,
34};
35pub use encoding::Value;
36pub use parser::{FormatMarker, ParseError, ParsedDiffSet, TableSchema};
37pub use schema::{DynTable, IndexableValues, NamedColumns, SchemaWithPK, SimpleTable};
38pub use wire::{
39    BoolDecoder, DateVerbatimDecoder, DecimalTextDecoder, DecodeError, Decoder, Digestable,
40    Int64OverflowToTextDecoder, IntDecoder, IntervalVerbatimDecoder, JsonCanonicalDecoder,
41    JsonVerbatimDecoder, MySqlBinaryDecoder, NullDecoder, PgByteaBinaryDecoder,
42    PgByteaTextModeDecoder, RealDecoder, TextDecoder, TimeVerbatimDecoder,
43    TimestampTzVerbatimDecoder, TimestampVerbatimDecoder, TypeMap, TypeMapDefaults,
44    UuidBlob16Decoder, UuidText36Decoder, WireAdapter, WireColumnTypes, WireSchema, WireSource,
45};
46
47// Type aliases for common use cases
48/// Type alias for `Update<T, ChangesetFormat, S, B>`.
49///
50/// Changeset updates store both old and new values for each column.
51pub type ChangeUpdate<T, S, B> = Update<T, ChangesetFormat, S, B>;
52
53/// Type alias for `Update<T, PatchsetFormat, S, B>`.
54///
55/// Patchset updates only store new values (PK values in new, non-PK as Undefined or new value).
56pub type PatchUpdate<T, S, B> = Update<T, PatchsetFormat, S, B>;
57
58// Re-export errors
59pub use errors::Error;