pub struct FileExtension(/* private fields */);
Expand description
The extension of a filename.
Can be parsed using std::str::FromStr
.
May contain alphanumeric ascii characters only, and is restricted to a
length of FILE_EXTENSION_MAX_LENGTH
characters. This is an arbitrary
decision based on regular usage of filename extensions as seen commonly
used. This serves as sanitization measure for user input.
Implementations§
Source§impl FileExtension
impl FileExtension
Sourcepub fn to_string_with_leading_dot(&self) -> String
pub fn to_string_with_leading_dot(&self) -> String
Return the file extension including a leading dot.
This is useful for appending it to a file stem without having to care about placing the dot depending on whether the extension is empty.
let file_stem = "hello-world";
let file_extension: FileExtension = "abc".parse().unwrap();
let file_name = format!("{}{}", file_stem, file_extension.to_string_with_leading_dot());
assert_eq!(file_name.as_str(), "hello-world.abc");
let file_stem = "hello-world";
let file_extension: FileExtension = "".parse().unwrap();
let file_name = format!("{}{}", file_stem, file_extension.to_string_with_leading_dot());
assert_eq!(file_name.as_str(), "hello-world");
Trait Implementations§
Source§impl Clone for FileExtension
impl Clone for FileExtension
Source§fn clone(&self) -> FileExtension
fn clone(&self) -> FileExtension
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for FileExtension
impl Debug for FileExtension
Source§impl Default for FileExtension
impl Default for FileExtension
Source§fn default() -> FileExtension
fn default() -> FileExtension
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for FileExtension
impl<'de> Deserialize<'de> for FileExtension
Source§fn deserialize<__D>(deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for FileExtension
impl Display for FileExtension
Source§impl ExampleData for FileExtension
impl ExampleData for FileExtension
Source§fn example_data() -> Self
fn example_data() -> Self
Get an example instance of the current datatype.
Source§impl FromStr for FileExtension
impl FromStr for FileExtension
Source§impl PartialEq for FileExtension
impl PartialEq for FileExtension
Source§impl PartialSchema for FileExtension
impl PartialSchema for FileExtension
Source§impl Serialize for FileExtension
impl Serialize for FileExtension
Source§impl ToSchema for FileExtension
impl ToSchema for FileExtension
impl Eq for FileExtension
impl StructuralPartialEq for FileExtension
Auto Trait Implementations§
impl Freeze for FileExtension
impl RefUnwindSafe for FileExtension
impl Send for FileExtension
impl Sync for FileExtension
impl Unpin for FileExtension
impl UnwindSafe for FileExtension
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoSql for T
impl<T> IntoSql for T
Source§fn into_sql<T>(self) -> Self::Expression
fn into_sql<T>(self) -> Self::Expression
Convert
self
to an expression for Diesel’s query builder. Read moreSource§fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression
fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression
Convert
&self
to an expression for Diesel’s query builder. Read more