sqlite_compressions/
lib.rs1#![cfg_attr(feature = "default", doc = include_str!("../README.md"))]
2#![forbid(unsafe_code)]
5
6#[cfg(not(any(
7 feature = "brotli",
8 feature = "bsdiff4",
9 feature = "bsdiffraw",
10 feature = "bzip2",
11 feature = "gzip",
12)))]
13compile_error!(
14 "At least one of these features must be enabled: gzip, brotli, bzip2, bsdiff4, bsdiffraw"
15);
16
17pub use rusqlite;
19
20use crate::rusqlite::{Connection, Result};
21
22#[cfg(any(feature = "bsdiff4", feature = "bsdiffraw"))]
23mod common_diff;
24#[cfg(any(feature = "bsdiff4", feature = "bsdiffraw"))]
25pub use crate::common_diff::Differ;
26
27#[cfg(any(feature = "brotli", feature = "bzip2", feature = "gzip"))]
28mod common;
29#[cfg(any(feature = "brotli", feature = "bzip2", feature = "gzip"))]
30pub use crate::common::Encoder;
31
32#[cfg(feature = "bsdiff4")]
33mod bsdiff4;
34#[cfg(feature = "bsdiff4")]
35pub use crate::bsdiff4::{register_bsdiff4_functions, Bsdiff4Differ};
36
37#[cfg(feature = "bsdiffraw")]
38mod bsdiffraw;
39#[cfg(feature = "bsdiffraw")]
40pub use crate::bsdiffraw::{register_bsdiffraw_functions, BsdiffRawDiffer};
41
42#[cfg(feature = "brotli")]
43mod brotli;
44#[cfg(feature = "brotli")]
45pub use crate::brotli::{register_brotli_functions, BrotliEncoder};
46
47#[cfg(feature = "bzip2")]
48mod bzip2;
49#[cfg(feature = "bzip2")]
50pub use crate::bzip2::{register_bzip2_functions, Bzip2Encoder};
51
52#[cfg(feature = "gzip")]
53mod gzip;
54#[cfg(feature = "gzip")]
55pub use crate::gzip::{register_gzip_functions, GzipEncoder};
56
57pub fn register_compression_functions(conn: &Connection) -> Result<()> {
85 #[cfg(feature = "gzip")]
86 register_gzip_functions(conn)?;
87 #[cfg(feature = "brotli")]
88 register_brotli_functions(conn)?;
89 #[cfg(feature = "bzip2")]
90 register_bzip2_functions(conn)?;
91 #[cfg(feature = "bsdiff4")]
92 register_bsdiff4_functions(conn)?;
93 #[cfg(feature = "bsdiffraw")]
94 register_bsdiffraw_functions(conn)?;
95
96 Ok(())
97}