1  #[cfg(no_str_strip_prefix)] // rustc <1.45
2  pub(crate) trait StripPrefixExt {
strip_prefix(&self, ch: char) -> Option<&str>3      fn strip_prefix(&self, ch: char) -> Option<&str>;
4  }
5  
6  #[cfg(no_str_strip_prefix)]
7  impl StripPrefixExt for str {
strip_prefix(&self, ch: char) -> Option<&str>8      fn strip_prefix(&self, ch: char) -> Option<&str> {
9          if self.starts_with(ch) {
10              Some(&self[ch.len_utf8()..])
11          } else {
12              None
13          }
14      }
15  }
16  
17  pub(crate) use crate::alloc::vec::Vec;
18  
19  #[cfg(no_alloc_crate)] // rustc <1.36
20  pub(crate) mod alloc {
21      pub use std::alloc;
22      pub use std::vec;
23  }
24