# Trait std::ascii::AsciiExt 1.0.0 [−] [src]

    pub trait AsciiExt {
        type Owned;
        fn is_ascii(&self) -> bool;
        fn to_ascii_uppercase(&self) -> Self::Owned;
        fn to_ascii_lowercase(&self) -> Self::Owned;
        fn eq_ignore_ascii_case(&self, other: &Self) -> bool;
        fn make_ascii_uppercase(&mut self);
        fn make_ascii_lowercase(&mut self);
    }

Extension methods for ASCII-subset only operations on string slices.

Be aware that operations on seemingly non-ASCII characters can sometimes have unexpected results. Consider this example:

fn main() { use std::ascii::AsciiExt; assert_eq!("café".to_ascii_uppercase(), "CAFÉ"); assert_eq!("café".to_ascii_uppercase(), "CAFé"); }

    use std::ascii::AsciiExt;

    assert_eq!("café".to_ascii_uppercase(), "CAFÉ");
    assert_eq!("café".to_ascii_uppercase(), "CAFé");

In the first example, the lowercased string is represented `"cafe\u{301}"` (the last character is an acute accent combining character). Unlike the other characters in the string, the combining character will not get mapped to an uppercase variant, resulting in `"CAFE\u{301}"`. In the second example, the lowercased string is represented `"caf\u{e9}"` (the last character is a single Unicode character representing an 'e' with an acute accent). Since the last character is defined outside the scope of ASCII, it will not get mapped to an uppercase variant, resulting in `"CAF\u{e9}"`.

## Associated Types

### `type Owned`

Container type for copied ASCII characters.

## Required Methods

### `fn is_ascii(&self) -> bool`

Checks if the value is within the ASCII range.

# Examples

fn main() { use std::ascii::AsciiExt; let ascii = 'a'; let utf8 = '❤'; assert!(ascii.is_ascii()); assert!(!utf8.is_ascii()); }

    use std::ascii::AsciiExt;

    let ascii = 'a';
    let utf8 = '❤';

    assert!(ascii.is_ascii());
    assert!(!utf8.is_ascii());

### `fn to_ascii_uppercase(&self) -> Self::Owned`

Makes a copy of the string in ASCII upper case.

ASCII letters 'a' to 'z' are mapped to 'A' to 'Z', but non-ASCII letters are unchanged.

# Examples

fn main() { use std::ascii::AsciiExt; let ascii = 'a'; let utf8 = '❤'; assert_eq!('A', ascii.to_ascii_uppercase()); assert_eq!('❤', utf8.to_ascii_uppercase()); }

    use std::ascii::AsciiExt;

    let ascii = 'a';
    let utf8 = '❤';

    assert_eq!('A', ascii.to_ascii_uppercase());
    assert_eq!('❤', utf8.to_ascii_uppercase());

### `fn to_ascii_lowercase(&self) -> Self::Owned`

Makes a copy of the string in ASCII lower case.

ASCII letters 'A' to 'Z' are mapped to 'a' to 'z', but non-ASCII letters are unchanged.

# Examples

fn main() { use std::ascii::AsciiExt; let ascii = 'A'; let utf8 = '❤'; assert_eq!('a', ascii.to_ascii_lowercase()); assert_eq!('❤', utf8.to_ascii_lowercase()); }

    use std::ascii::AsciiExt;

    let ascii = 'A';
    let utf8 = '❤';

    assert_eq!('a', ascii.to_ascii_lowercase());
    assert_eq!('❤', utf8.to_ascii_lowercase());

### `fn eq_ignore_ascii_case(&self, other: &Self) -> bool`

Checks that two strings are an ASCII case-insensitive match.

Same as `to_ascii_lowercase(a) == to_ascii_lowercase(b)`, but without allocating and copying temporary strings.

# Examples

fn main() { use std::ascii::AsciiExt; let ascii1 = 'A'; let ascii2 = 'a'; let ascii3 = 'A'; let ascii4 = 'z'; assert!(ascii1.eq_ignore_ascii_case(&ascii2)); assert!(ascii1.eq_ignore_ascii_case(&ascii3)); assert!(!ascii1.eq_ignore_ascii_case(&ascii4)); }

    use std::ascii::AsciiExt;

    let ascii1 = 'A';
    let ascii2 = 'a';
    let ascii3 = 'A';
    let ascii4 = 'z';

    assert!(ascii1.eq_ignore_ascii_case(&ascii2));
    assert!(ascii1.eq_ignore_ascii_case(&ascii3));
    assert!(!ascii1.eq_ignore_ascii_case(&ascii4));

### `fn make_ascii_uppercase(&mut self)`
1.9.0

Converts this type to its ASCII upper case equivalent in-place.

See `to_ascii_uppercase` for more information.

# Examples

fn main() { use std::ascii::AsciiExt; let mut ascii = 'a'; ascii.make_ascii_uppercase(); assert_eq!('A', ascii); }

    use std::ascii::AsciiExt;

    let mut ascii = 'a';

    ascii.make_ascii_uppercase();

    assert_eq!('A', ascii);

### `fn make_ascii_lowercase(&mut self)`
1.9.0

Converts this type to its ASCII lower case equivalent in-place.

See `to_ascii_lowercase` for more information.

# Examples

fn main() { use std::ascii::AsciiExt; let mut ascii = 'A'; ascii.make_ascii_lowercase(); assert_eq!('a', ascii); }

    use std::ascii::AsciiExt;

    let mut ascii = 'A';

    ascii.make_ascii_lowercase();

    assert_eq!('a', ascii);

## Implementors

- `impl AsciiExt for str`
- `impl AsciiExt for [u8]`
- `impl AsciiExt for u8`
- `impl AsciiExt for char`

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result
+
  Collapse/expand all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)