[−][src]Trait rocket::request::FromSegments
Trait to convert many dynamic path segment strings to a concrete value.
This is the .. analog to FromParam, and its
functionality is identical to it with one exception: this trait applies to
segment parameters of the form <param..>, where param is of some type
T that implements FromSegments. T::from_segments is called to convert
the matched segments (via the
Segments iterator) into the
implementing type.
Provided Implementations
Rocket implements FromParam for PathBuf. The PathBuf implementation
constructs a path from the segments iterator. Each segment is
percent-decoded. If a segment equals ".." before or after decoding, the
previous segment (if any) is omitted. For security purposes, any other
segments that begin with "*" or "." are ignored. If a percent-decoded
segment results in invalid UTF8, an Err is returned with the Utf8Error.
Associated Types
Required Methods
fn from_segments(segments: Segments<'a>) -> Result<Self, Self::Error>
Parses an instance of Self from many dynamic path parameter strings or
returns an Error if one cannot be parsed.
Implementations on Foreign Types
impl<'a> FromSegments<'a> for PathBuf[src]
impl<'a> FromSegments<'a> for PathBufCreates a PathBuf from a Segments iterator. The returned PathBuf is
percent-decoded. If a segment is equal to "..", the previous segment (if
any) is skipped.
For security purposes, if a segment meets any of the following conditions,
an Err is returned indicating the condition met:
- Decoded segment starts with any of:
.(except..),* - Decoded segment ends with any of:
:,>,< - Decoded segment contains any of:
/ - On Windows, decoded segment contains any of: ''
- Percent-encoding results in invalid UTF8.
As a result of these conditions, a PathBuf derived via FromSegments is
safe to interpolate within, or use as a suffix of, a path without additional
checks.
type Error = SegmentError
fn from_segments(segments: Segments<'a>) -> Result<PathBuf, SegmentError>[src]
fn from_segments(segments: Segments<'a>) -> Result<PathBuf, SegmentError>impl<'a, T: FromSegments<'a>> FromSegments<'a> for Result<T, T::Error>[src]
impl<'a, T: FromSegments<'a>> FromSegments<'a> for Result<T, T::Error>impl<'a, T: FromSegments<'a>> FromSegments<'a> for Option<T>[src]
impl<'a, T: FromSegments<'a>> FromSegments<'a> for Option<T>