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## No Std
22
23Disable the default features to compile this crate without std.
24
25```toml
26[dependencies.str-utils]
27version = "*"
28default-features = false
29```
30*/
31
32#![cfg_attr(not(feature = "std"), no_std)]
33#![cfg_attr(docsrs, feature(doc_cfg))]
34
35// TODO eq_ignore_case_multiple
36// TODO starts_with_ignore_case_multiple
37// TODO ends_with_ignore_case_multiple
38
39mod ends_with_ignore_ascii_case;
40mod ends_with_ignore_ascii_case_multiple;
41mod ends_with_ignore_case;
42mod ends_with_multiple;
43mod eq_ignore_ascii_case;
44mod eq_ignore_ascii_case_multiple;
45mod eq_ignore_case;
46mod eq_multiple;
47#[cfg(feature = "std")]
48mod escape_characters;
49#[cfg(feature = "std")]
50mod remove_all_invisible_characters;
51mod starts_with_ignore_ascii_case;
52mod starts_with_ignore_ascii_case_multiple;
53mod starts_with_ignore_case;
54mod starts_with_multiple;
55
56pub use ends_with_ignore_ascii_case::*;
57pub use ends_with_ignore_ascii_case_multiple::*;
58pub use ends_with_ignore_case::*;
59pub use ends_with_multiple::*;
60pub use eq_ignore_ascii_case::*;
61pub use eq_ignore_ascii_case_multiple::*;
62pub use eq_ignore_case::*;
63pub use eq_multiple::*;
64#[cfg(feature = "std")]
65pub use escape_characters::*;
66#[cfg(feature = "std")]
67pub use remove_all_invisible_characters::*;
68pub use starts_with_ignore_ascii_case::*;
69pub use starts_with_ignore_ascii_case_multiple::*;
70pub use starts_with_ignore_case::*;
71pub use starts_with_multiple::*;