1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//! Common lockchain error handling
//! 
//! When working with a lockchain vault or record set
//! there are a lot of things that can go wrong.
//! 
//! This module handles any generic failure condition
//! and logic to escallate from one to the next, e.g.
//! turning a `VaultAlreadyExists` failure to 
//! a `FailedInitialise`.


/// A collection of common error codes that can be
/// returned by lockchain API functions
pub enum Error {
    /// Creating a vault where one already exists
    VaultAlreadyExists,
    /// When providing an invalid path
    InvalidPath,
    /// When providing an invalid name (unprintable characters, empty, etc)
    InvalidName,
    /// Provided crypto layer is lacking features or missing
    InvalidCryptoLayer,
    /// Failed to initialise cryptography module
    FailedCrypto,
    /// Failed the internal self-test
    FailedSelfTest,
    /// Failed loading a file or vault
    FailedLoading,
    /// Failed to initialise a module
    FailedInitalise,
    /// Failed to create a new record, entry or vault
    FailedCreation,
    /// An unknown error occured =/
    UnknownFailure,
    // #[hidden_docs]
    __NonExhaustive,
}