[][src]Struct mail_headers::_SoftAsciiStr

#[repr(transparent)]pub struct _SoftAsciiStr(_);

A str wrapper adding a "is us-ascii" soft constraint.

This means that it should be ascii but is not guaranteed to be ascii. Which means non ascii chars are not a safety issue just a potential bug.

This is useful for situations where:

  1. you would have many unsafe from str conversions/"unnecessary" checks with a strict AsciiStr
  2. you rarely have to strictly rely on the value being ascii

Note

Some functions which should be implemented directly on SoftAsciiStr like e.g. trim_matches are only provided through .as_str(). This is because the Pattern API and SliceIndex API is unstable i.e. can only be implemented in unstable for now. Once it gets stabilized (rust #27721/#35729) implementations can be added

Methods

impl SoftAsciiStr[src]

pub fn from_unchecked(s: &str) -> &SoftAsciiStr[src]

pub fn from_str_unchecked(s: &str) -> &SoftAsciiStr[src]

Deprecated since 1.0.0:

use from_unchecked

pub fn from_unchecked_mut(s: &mut str) -> &mut SoftAsciiStr[src]

pub fn from_str(source: &str) -> Result<&SoftAsciiStr, FromSourceError<&str>>[src]

pub fn revalidate_soft_constraint(
    &self
) -> Result<&SoftAsciiStr, FromSourceError<&str>>
[src]

reruns checks if the "is us-ascii" soft constraint is still valid

pub fn as_str(&self) -> &str[src]

pub fn into_soft_ascii_string(self: Box<SoftAsciiStr>) -> SoftAsciiString[src]

pub fn from_boxed_str(bs: Box<str>) -> Box<SoftAsciiStr>[src]

pub fn into_boxed_str(self: Box<SoftAsciiStr>) -> Box<str>[src]

pub fn lines(&self) -> SoftAsciiLines[src]

pub fn split_whitespace(&self) -> SoftAsciiSplitWhitespace[src]

pub fn char_indices(&self) -> SoftAsciiCharIndices[src]

pub fn chars(&self) -> SoftAsciiChars[src]

pub fn split_at(&self, mid: usize) -> (&SoftAsciiStr, &SoftAsciiStr)[src]

pub unsafe fn slice_unchecked(&self, begin: usize, end: usize) -> &SoftAsciiStr[src]

Deprecated since 1.1.0:

deprecated in std

pub unsafe fn get_unchecked<I>(&self, index: I) -> &SoftAsciiStr where
    I: TempSliceIndexHelper, 
[src]

Proxy of std::str::get_unchecked.

Currently limited to the various range types:

  • Range<usize>
  • RangeInclusive<usize>
  • RangeFrom<usize>
  • RangeTo<usize>
  • RangeToInclusive<usize>
  • RangeFull

Once all methods on SliceIndex are stable this can be implemented using SliceIndex<SoftAsciiStr> bounds.

pub fn inner_str_mut(&mut self) -> &mut str[src]

returns a mutable str reference to the inner buffer

Soft Constraint

be aware that it is very easy to introduce bugs when directly editing a SoftAsciiStr as an str. Still compared to a AsciiStr implementation this won't introduce unsafety, just possible brakeage of the soft constraint that the data should be ascii.

pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err> where
    F: FromStr
[src]

impl SoftAsciiStr[src]

pub fn to_lowercase(&self) -> SoftAsciiString[src]

impl SoftAsciiStr[src]

pub fn to_uppercase(&self) -> SoftAsciiString[src]

impl SoftAsciiStr[src]

pub fn repeat(&self, n: usize) -> SoftAsciiString[src]

impl SoftAsciiStr[src]

pub fn trim_right(&self) -> &SoftAsciiStr[src]

Deprecated since 1.1.0:

deprecated in std

pub fn trim_left(&self) -> &SoftAsciiStr[src]

Deprecated since 1.1.0:

deprecated in std

pub fn trim_end(&self) -> &SoftAsciiStr[src]

pub fn trim_start(&self) -> &SoftAsciiStr[src]

pub fn trim(&self) -> &SoftAsciiStr[src]

impl SoftAsciiStr[src]

pub fn len(&self) -> usize[src]

pub fn is_empty(&self) -> bool[src]

pub fn is_char_boundary(&self, index: usize) -> bool[src]

pub fn as_ptr(&self) -> *const u8[src]

pub fn encode_utf16(&self) -> EncodeUtf16[src]

pub fn is_ascii(&self) -> bool[src]

pub fn as_bytes(&self) -> &[u8][src]

Trait Implementations

impl AsRef<[u8]> for SoftAsciiStr[src]

impl AsRef<OsStr> for SoftAsciiStr[src]

impl AsRef<Path> for SoftAsciiStr[src]

impl AsRef<SoftAsciiStr> for SoftAsciiStr[src]

impl AsRef<str> for SoftAsciiStr[src]

impl Debug for SoftAsciiStr[src]

impl<'a> Default for &'a SoftAsciiStr[src]

impl Display for SoftAsciiStr[src]

impl Eq for SoftAsciiStr[src]

impl Hash for SoftAsciiStr[src]

impl Index<Range<usize>> for SoftAsciiStr[src]

type Output = SoftAsciiStr

The returned type after indexing.

impl Index<RangeFrom<usize>> for SoftAsciiStr[src]

type Output = SoftAsciiStr

The returned type after indexing.

impl Index<RangeFull> for SoftAsciiStr[src]

type Output = SoftAsciiStr

The returned type after indexing.

impl Index<RangeTo<usize>> for SoftAsciiStr[src]

type Output = SoftAsciiStr

The returned type after indexing.

impl Ord for SoftAsciiStr[src]

impl<'a, 'b> PartialEq<Cow<'a, SoftAsciiStr>> for &'a SoftAsciiStr[src]

impl<'a> PartialEq<Cow<'a, SoftAsciiStr>> for SoftAsciiStr[src]

impl<'a> PartialEq<Cow<'a, str>> for SoftAsciiStr[src]

impl<'a, 'b> PartialEq<Cow<'b, str>> for &'a SoftAsciiStr[src]

impl PartialEq<OsStr> for SoftAsciiStr[src]

impl<'a> PartialEq<OsString> for &'a SoftAsciiStr[src]

impl PartialEq<OsString> for SoftAsciiStr[src]

impl PartialEq<SoftAsciiStr> for SoftAsciiStr[src]

impl PartialEq<SoftAsciiStr> for HeaderName[src]

impl<'a> PartialEq<SoftAsciiString> for &'a SoftAsciiStr[src]

impl PartialEq<SoftAsciiString> for SoftAsciiStr[src]

impl PartialEq<String> for SoftAsciiStr[src]

impl<'a> PartialEq<String> for &'a SoftAsciiStr[src]

impl PartialEq<str> for SoftAsciiStr[src]

impl PartialOrd<SoftAsciiStr> for SoftAsciiStr[src]

impl StructuralEq for SoftAsciiStr[src]

impl StructuralPartialEq for SoftAsciiStr[src]

impl ToOwned for SoftAsciiStr[src]

type Owned = SoftAsciiString

The resulting type after obtaining ownership.

impl ToSocketAddrs for SoftAsciiStr[src]

type Iter = IntoIter<SocketAddr>

Returned iterator over socket addresses which this type may correspond to. Read more

Auto Trait Implementations

impl RefUnwindSafe for SoftAsciiStr

impl Send for SoftAsciiStr

impl Sync for SoftAsciiStr

impl Unpin for SoftAsciiStr

impl UnwindSafe for SoftAsciiStr

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]