From 7d870758cbd9ad4181471ad40184d1bac1204e1e Mon Sep 17 00:00:00 2001 From: Ryan Leckey Date: Sat, 28 Jan 2017 20:46:29 -0800 Subject: Use 'Cow' to remove unnecessary allocations --- src/file/json.rs | 3 ++- src/file/toml.rs | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'src/file') diff --git a/src/file/json.rs b/src/file/json.rs index 05af065..165bdbe 100644 --- a/src/file/json.rs +++ b/src/file/json.rs @@ -2,6 +2,7 @@ use serde_json; use source::Source; use std::error::Error; +use std::borrow::Cow; use value::Value; pub struct Content { @@ -20,7 +21,7 @@ impl Content { fn from_json_value(value: &serde_json::Value) -> Option { match *value { - serde_json::Value::String(ref value) => Some(Value::String(value.clone())), + serde_json::Value::String(ref value) => Some(Value::String(Cow::Borrowed(value))), serde_json::Value::Number(ref value) => { if let Some(value) = value.as_i64() { diff --git a/src/file/toml.rs b/src/file/toml.rs index 9e4b170..2fd5bd3 100644 --- a/src/file/toml.rs +++ b/src/file/toml.rs @@ -1,5 +1,6 @@ use toml; use source::Source; +use std::borrow::Cow; use std::error::Error; use value::Value; @@ -21,7 +22,7 @@ impl Content { fn from_toml_value(value: &toml::Value) -> Option { match *value { - toml::Value::String(ref value) => Some(Value::String(value.clone())), + toml::Value::String(ref value) => Some(Value::String(Cow::Borrowed(value))), toml::Value::Float(value) => Some(Value::Float(value)), toml::Value::Integer(value) => Some(Value::Integer(value)), toml::Value::Boolean(value) => Some(Value::Boolean(value)), -- cgit v1.2.3