str_utils/
lib.rs

1/*!
2# str Utils
3
4This crate provides some traits to extend types which implement `AsRef<[u8]>` or `AsRef<str>`.
5
6## Examples
7
8```rust
9use str_utils::*;
10
11assert_eq!(true, "foobar".starts_with_ignore_ascii_case("FoO"));
12assert_eq!(Some(1), "photo.jpg".ends_with_ignore_ascii_case_multiple(&[".png", ".jpg", ".gif"]));
13assert_eq!(true, "http".eq_ignore_ascii_case_with_uppercase("HTTP")); // faster than `eq_ignore_ascii_case`
14assert_eq!(true, "foobar".starts_with_ignore_ascii_case("FoO"));
15# #[cfg(feature = "std")]
16assert_eq!("here is a ZERO_WIDTH_SPACE -> ​".len() - 3, "here is a ZERO_WIDTH_SPACE -> ​".remove_all_invisible_characters().len());
17# #[cfg(feature = "std")]
18assert_eq!(r"foo\% b\_r", r"foo% b_r".escape_ascii_characters(b'\\', b"%_"));
19```
20*/
21
22#![cfg_attr(not(feature = "std"), no_std)]
23
24// TODO eq_ignore_case_multiple
25// TODO starts_with_ignore_case_multiple
26// TODO ends_with_ignore_case_multiple
27
28mod ends_with_ignore_ascii_case;
29mod ends_with_ignore_ascii_case_multiple;
30mod ends_with_ignore_case;
31mod ends_with_multiple;
32mod eq_ignore_ascii_case;
33mod eq_ignore_ascii_case_multiple;
34mod eq_ignore_case;
35mod eq_multiple;
36#[cfg(feature = "std")]
37mod escape_characters;
38#[cfg(feature = "std")]
39mod remove_all_invisible_characters;
40mod starts_with_ignore_ascii_case;
41mod starts_with_ignore_ascii_case_multiple;
42mod starts_with_ignore_case;
43mod starts_with_multiple;
44
45pub use ends_with_ignore_ascii_case::*;
46pub use ends_with_ignore_ascii_case_multiple::*;
47pub use ends_with_ignore_case::*;
48pub use ends_with_multiple::*;
49pub use eq_ignore_ascii_case::*;
50pub use eq_ignore_ascii_case_multiple::*;
51pub use eq_ignore_case::*;
52pub use eq_multiple::*;
53#[cfg(feature = "std")]
54pub use escape_characters::*;
55#[cfg(feature = "std")]
56pub use remove_all_invisible_characters::*;
57pub use starts_with_ignore_ascii_case::*;
58pub use starts_with_ignore_ascii_case_multiple::*;
59pub use starts_with_ignore_case::*;
60pub use starts_with_multiple::*;