diff --git a/.cargo/config b/.cargo/config.toml similarity index 100% rename from .cargo/config rename to .cargo/config.toml diff --git a/Cargo.toml b/Cargo.toml index 2a43ed2e..545842d1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -138,7 +138,6 @@ name = "perf" codegen-units = 1 lto = true opt-level = 3 -panic = "abort" [profile.release] diff --git a/src/value/lazy.rs b/src/value/lazy.rs index 0bfc5491..7b1f6ecc 100644 --- a/src/value/lazy.rs +++ b/src/value/lazy.rs @@ -1,6 +1,6 @@ -use crate::cow::Cow; use crate::prelude::*; use crate::{borrowed, tape}; +use std::borrow::Cow; use std::fmt; mod array; @@ -237,10 +237,16 @@ impl<'tape, 'value> ValueIntoString for Value<'tape, 'value> { // This is a bit complex but it allows us to avoid cloning Value::Value(value) => match value { Cow::Borrowed(value) => match value { + #[cfg(feature = "beef")] + borrowed::Value::String(s) => Some(s.clone().into()), + #[cfg(not(feature = "beef"))] borrowed::Value::String(s) => Some(s.clone()), _ => None, }, Cow::Owned(value) => match value { + #[cfg(feature = "beef")] + borrowed::Value::String(s) => Some(s.into()), + #[cfg(not(feature = "beef"))] borrowed::Value::String(s) => Some(s), _ => None, }, diff --git a/src/value/lazy/from.rs b/src/value/lazy/from.rs index 96d649c5..3531bf41 100644 --- a/src/value/lazy/from.rs +++ b/src/value/lazy/from.rs @@ -1,12 +1,12 @@ use super::Value; use crate::StaticNode; use crate::{borrowed, cow::Cow}; - +use std::borrow::Cow as StdCow; impl<'tape, 'value> From for Value<'tape, 'value> { #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: StaticNode) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } @@ -17,7 +17,7 @@ where #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: Option) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } /********* str_ **********/ @@ -25,7 +25,7 @@ impl<'tape, 'value> From<&'value str> for Value<'tape, 'value> { #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: &'value str) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } @@ -34,7 +34,7 @@ impl<'tape, 'value> From> for Value<'tape, 'value> #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: std::borrow::Cow<'value, str>) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } @@ -43,7 +43,7 @@ impl<'tape, 'value> From> for Value<'tape, 'value> #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: std::borrow::Cow<'value, str>) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } @@ -52,7 +52,7 @@ impl<'tape, 'value> From> for Value<'tape, 'value> #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: beef::lean::Cow<'value, str>) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } @@ -60,7 +60,7 @@ impl<'tape, 'value> From for Value<'tape, 'value> { #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: String) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } @@ -69,14 +69,14 @@ impl<'tape, 'value> From for Value<'tape, 'value> { #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: bool) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } impl<'tape, 'value> From<()> for Value<'tape, 'value> { #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: ()) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } @@ -85,7 +85,7 @@ impl<'tape, 'value> From for Value<'tape, 'value> { #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: i8) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } @@ -93,7 +93,7 @@ impl<'tape, 'value> From for Value<'tape, 'value> { #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: i16) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } @@ -101,7 +101,7 @@ impl<'tape, 'value> From for Value<'tape, 'value> { #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: i32) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } @@ -109,7 +109,7 @@ impl<'tape, 'value> From for Value<'tape, 'value> { #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: i64) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } @@ -118,7 +118,7 @@ impl<'tape, 'value> From for Value<'tape, 'value> { #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: i128) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } @@ -127,7 +127,7 @@ impl<'tape, 'value> From for Value<'tape, 'value> { #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: u8) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } @@ -135,7 +135,7 @@ impl<'tape, 'value> From for Value<'tape, 'value> { #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: u16) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } @@ -143,7 +143,7 @@ impl<'tape, 'value> From for Value<'tape, 'value> { #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: u32) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } @@ -151,7 +151,7 @@ impl<'tape, 'value> From for Value<'tape, 'value> { #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: u64) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } @@ -160,7 +160,7 @@ impl<'tape, 'value> From for Value<'tape, 'value> { #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: u128) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } @@ -168,7 +168,7 @@ impl<'tape, 'value> From for Value<'tape, 'value> { #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: usize) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } @@ -177,7 +177,7 @@ impl<'tape, 'value> From for Value<'tape, 'value> { #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: f32) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } @@ -185,7 +185,7 @@ impl<'tape, 'value> From for Value<'tape, 'value> { #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: f64) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } @@ -196,7 +196,7 @@ where #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: Vec) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } @@ -204,7 +204,7 @@ impl<'tape, 'value, V: Into>> FromIterator for Value< #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from_iter>(v: I) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from_iter(v))) + Value::Value(StdCow::Owned(borrowed::Value::from_iter(v))) } } @@ -214,7 +214,7 @@ impl<'tape, 'value, K: Into>, V: Into>> #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from_iter>(v: I) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from_iter(v))) + Value::Value(StdCow::Owned(borrowed::Value::from_iter(v))) } } @@ -222,6 +222,6 @@ impl<'tape, 'value> From> for Value<'tape, 'valu #[cfg_attr(not(feature = "no-inline"), inline)] #[must_use] fn from(v: crate::borrowed::Object<'value>) -> Self { - Value::Value(Cow::Owned(borrowed::Value::from(v))) + Value::Value(StdCow::Owned(borrowed::Value::from(v))) } } diff --git a/src/value/lazy/object.rs b/src/value/lazy/object.rs index b69ad748..79b05606 100644 --- a/src/value/lazy/object.rs +++ b/src/value/lazy/object.rs @@ -18,19 +18,19 @@ pub enum Iter<'tape, 'input> { /// Tape variant Tape(tape::object::Iter<'tape, 'input>), /// Value variant - Value(halfbrown::Iter<'tape, Cow<'input, str>, borrowed::Value<'input>>), + Value(halfbrown::Iter<'tape, crate::cow::Cow<'input, str>, borrowed::Value<'input>>), } pub enum Keys<'tape, 'input> { /// Tape variant Tape(tape::object::Keys<'tape, 'input>), /// Value variant - Value(halfbrown::Keys<'tape, Cow<'input, str>, borrowed::Value<'input>>), + Value(halfbrown::Keys<'tape, crate::cow::Cow<'input, str>, borrowed::Value<'input>>), } pub enum Values<'tape, 'input> { /// Tape variant Tape(tape::object::Values<'tape, 'input>), /// Value variant - Value(halfbrown::Values<'tape, Cow<'input, str>, borrowed::Value<'input>>), + Value(halfbrown::Values<'tape, crate::cow::Cow<'input, str>, borrowed::Value<'input>>), } //value_trait::Object for @@ -41,7 +41,7 @@ impl<'tape, 'input> Object<'tape, 'input> { pub fn get(&self, k: &Q) -> Option> where str: Borrow, - std::borrow::Cow<'input, str>: Borrow, + crate::cow::Cow<'input, str>: Borrow, Q: ?Sized + Hash + Eq + Ord, { match self {