npsd 0.2.0

Network payload serializer / deserializer framework
Documentation
#[doc(hidden)]
#[cfg(feature = "sync")]
use npsd_schema::SchemaInternal as Schema;

#[doc(hidden)]
#[cfg(feature = "async")]
use npsd_schema::AsyncSchemaInternal as AsyncSchema;

#[doc(hidden)]
use npsd_schema::InfoInternal as Info;

#[doc(hidden)]
use crate::PayloadInfo;

#[doc(hidden)]
use thiserror::Error as AsError;

#[cfg(feature = "sync")]
use crate::{Middleware, Payload, IntoPayload, FromPayload};

#[cfg(feature = "async")]
use crate::{AsyncMiddleware, AsyncPayload, AsyncIntoPayload, AsyncFromPayload};

#[cfg_attr(feature = "async", derive(AsyncSchema))]
#[cfg_attr(feature = "sync", derive(Schema))]
#[derive(Clone, Info, AsError, PartialEq, Debug)]
pub enum Error {
    #[error("Invalid length: expected `{expected}`, found `{found}`")]
    InvalidLength {
        expected: usize,
        found: usize,
    },

    #[error("Stack error: `{0}`")]
    Stack(String),

    #[error("Unknown error: `{0}`")]
    Unknown(String),

    #[error("Invalid UTF-8 sequence")]
    InvalidUtf8(String),

    #[error("Unknown variant: `{0}`")]
    UnknownVariant(String),

    #[error("Index out of bounds: `{0}`")]
    IndexOutOfBounds(usize),

    #[error("Reached max depth of nested types for: `{0}`")]
    NestedDepthLimit(String),

    #[error("Failed to upgrade Weak reference")]
    WeakUpgrade,

    #[error("Invalid pointer")]
    NullPtr,

    #[error("Invalid Time: `{0}`")]
    Time(String),

    #[error("Traced error: `{0}`, path: `{1}`")]
    Traced(String, String),

    #[error("External error: {0}")]
    External(String),
}