1#[doc(hidden)]
2#[cfg(feature = "sync")]
3use npsd_schema::SchemaInternal as Schema;
4
5#[doc(hidden)]
6#[cfg(feature = "async")]
7use npsd_schema::AsyncSchemaInternal as AsyncSchema;
8
9#[doc(hidden)]
10use npsd_schema::InfoInternal as Info;
11
12#[doc(hidden)]
13use crate::PayloadInfo;
14
15#[doc(hidden)]
16use thiserror::Error as AsError;
17
18#[cfg(feature = "sync")]
19use crate::{Middleware, Payload, IntoPayload, FromPayload};
20
21#[cfg(feature = "async")]
22use crate::{AsyncMiddleware, AsyncPayload, AsyncIntoPayload, AsyncFromPayload};
23
24#[cfg_attr(feature = "async", derive(AsyncSchema))]
25#[cfg_attr(feature = "sync", derive(Schema))]
26#[derive(Clone, Info, AsError, PartialEq, Debug)]
27pub enum Error {
28 #[error("Invalid length: expected `{expected}`, found `{found}`")]
29 InvalidLength {
30 expected: usize,
31 found: usize,
32 },
33
34 #[error("Stack error: `{0}`")]
35 Stack(String),
36
37 #[error("Unknown error: `{0}`")]
38 Unknown(String),
39
40 #[error("Invalid UTF-8 sequence")]
41 InvalidUtf8(String),
42
43 #[error("Unknown variant: `{0}`")]
44 UnknownVariant(String),
45
46 #[error("Index out of bounds: `{0}`")]
47 IndexOutOfBounds(usize),
48
49 #[error("Reached max depth of nested types for: `{0}`")]
50 NestedDepthLimit(String),
51
52 #[error("Failed to upgrade Weak reference")]
53 WeakUpgrade,
54
55 #[error("Invalid pointer")]
56 NullPtr,
57
58 #[error("Invalid Time: `{0}`")]
59 Time(String),
60
61 #[error("Traced error: `{0}`, path: `{1}`")]
62 Traced(String, String),
63
64 #[error("External error: {0}")]
65 External(String),
66}