once_cell = "1.3.1"
cfg-if = "1"
libc = "0.2.73"
-backtrace = { version = "0.3.44", optional = true }
arena = { path = "../arena", version = "0.0.0" }
cpu_profiler = []
# Uncomment to enable for the whole crate graph
-# default = [ "backtrace" ]
# default = [ "cpu_profiler" ]
stop_watch::{StopWatch, StopWatchSpan},
};
-/// Prints backtrace to stderr, useful for debugging.
-#[cfg(feature = "backtrace")]
-pub fn print_backtrace() {
- let bt = backtrace::Backtrace::new();
- eprintln!("{:?}", bt);
-}
-#[cfg(not(feature = "backtrace"))]
-pub fn print_backtrace() {
- eprintln!(
- r#"enable the backtrace feature:
- profile = {{ path = "../profile", features = [ "backtrace"] }}
-"#
- );
-}
-
thread_local!(static IN_SCOPE: RefCell<bool> = RefCell::new(false));
/// Allows to check if the current code is withing some dynamic scope, can be
doctest = false
[dependencies]
+backtrace = { version = "0.3.44", optional = true }
# Think twice before adding anything here
+
+[features]
+# Uncomment to enable for the whole crate graph
+# default = [ "backtrace" ]
Guard { label, start: Instant::now() }
}
+/// Prints backtrace to stderr, useful for debugging.
+#[cfg(feature = "backtrace")]
+pub fn print_backtrace() {
+ let bt = backtrace::Backtrace::new();
+ eprintln!("{:?}", bt);
+}
+#[cfg(not(feature = "backtrace"))]
+pub fn print_backtrace() {
+ eprintln!(
+ r#"Enable the backtrace feature.
+Uncomment `default = [ "backtrace" ]` in `crates/stdx/Cargo.toml`.
+"#
+ );
+}
+
+pub fn to_lower_snake_case(s: &str) -> String {
+ to_snake_case(s, char::to_ascii_lowercase)
+}
+pub fn to_upper_snake_case(s: &str) -> String {
+ to_snake_case(s, char::to_ascii_uppercase)
+}
fn to_snake_case<F: Fn(&char) -> char>(s: &str, change_case: F) -> String {
let mut buf = String::with_capacity(s.len());
let mut prev = false;
buf
}
-pub fn to_lower_snake_case(s: &str) -> String {
- to_snake_case(s, char::to_ascii_lowercase)
-}
-
-pub fn to_upper_snake_case(s: &str) -> String {
- to_snake_case(s, char::to_ascii_uppercase)
-}
-
pub fn replace(buf: &mut String, from: char, to: &str) {
if !buf.contains(from) {
return;