hyperlane/route/type.rs
1use crate::*;
2
3/// A type alias for a hash map that stores captured route parameters.
4///
5/// The key is the parameter name and the value is the captured string.
6pub type RouteParams = HashMapXxHash3_64<String, String>;
7/// A type alias for a list of route segments.
8///
9/// This is used to represent a parsed route.
10pub type RouteSegmentList = Vec<RouteSegment>;
11/// A type alias for an optional AC automaton.
12///
13/// This is used to represent a parsed route.
14pub(crate) type OptionRouteSearchEngine = Option<RouteSearchEngine>;
15/// A type alias for a list of path components.
16///
17/// This is often used for path components.
18pub(crate) type PathComponentList<'a> = Vec<&'a str>;
19/// A type alias for route registration result.
20///
21/// This indicates success or a `RouteError`.
22pub(crate) type RouteRegistrationResult = Result<(), RouteError>;
23/// A type alias for route parsing result.
24///
25/// This yields a vector of `RouteSegment`s or a `RouteError`.
26pub(crate) type RouteParseResult = Result<RouteSegmentList, RouteError>;
27/// A type alias for route pattern creation result.
28///
29/// This can fail with a `RouteError`.
30pub(crate) type RoutePatternResult = Result<RoutePattern, RouteError>;
31/// A type alias for optional route parameters.
32///
33/// It is `Some` if a dynamic or regex route matches and captures parameters, and `None` otherwise.
34pub(crate) type OptionRouteParams = Option<RouteParams>;