Skip to main content

sark_core/route/
error.rs

1use std::{convert, mem};
2
3use crate::{request::field, route};
4
5/// Exact failure while decoding generated route fields.
6#[derive(Clone, Copy, Debug, PartialEq, Eq)]
7pub enum Error<F: Copy> {
8    Header {
9        field: F,
10        cause: field::Error,
11    },
12    Path {
13        field: F,
14        cause: field::Error,
15    },
16    Query {
17        field: F,
18        cause: field::Error,
19    },
20    QueryOrder {
21        start: usize,
22        end: usize,
23        capacity: usize,
24    },
25    QueryBounds {
26        start: usize,
27        end: usize,
28        capacity: usize,
29    },
30    QueryExhausted {
31        state: u8,
32        fields: usize,
33        start: usize,
34        end: usize,
35    },
36}
37
38impl<F: Copy> Error<F> {
39    pub const fn reject(self) -> route::Reject {
40        route::Reject::BadRequest
41    }
42}
43
44const _: () = {
45    assert!(!mem::needs_drop::<Error<convert::Infallible>>());
46};