1#![deny(missing_docs)]
2#![forbid(unsafe_code)]
3#![cfg_attr(all(doc, CHANNEL_NIGHTLY), feature(doc_auto_cfg))]
4mod account_integrity;
6mod error;
7mod event_integrity;
8#[cfg(feature = "files")]
9mod file_integrity;
10mod vault_integrity;
11
12pub use account_integrity::{account_integrity, FolderIntegrityEvent};
13pub use event_integrity::event_integrity;
14pub use vault_integrity::vault_integrity;
15
16#[cfg(feature = "files")]
17pub use file_integrity::{file_integrity, FileIntegrityEvent};
18
19pub use error::Error;
20
21pub(crate) type Result<T> = std::result::Result<T, Error>;
23
24use sos_core::{commit::CommitHash, ExternalFile, VaultId};
25
26#[derive(Debug)]
28pub enum IntegrityFailure {
29 MissingFolder(VaultId),
31 MissingFile(ExternalFile),
33 CorruptedFolder {
35 folder_id: VaultId,
37 expected: CommitHash,
39 actual: CommitHash,
41 },
42 CorruptedFile {
44 external_file: ExternalFile,
46 expected: CommitHash,
48 actual: CommitHash,
50 },
51 Error(Error),
53}