summaryrefslogtreecommitdiffstats
path: root/src/file
diff options
context:
space:
mode:
authorRyan Leckey <leckey.ryan@gmail.com>2017-01-28 20:46:29 -0800
committerRyan Leckey <leckey.ryan@gmail.com>2017-01-28 20:47:26 -0800
commit7d870758cbd9ad4181471ad40184d1bac1204e1e (patch)
tree5f84b003c3dfe4c65b5ed97cbce8de6b8f984c49 /src/file
parent0b3087a8cbe6c0b9428d33c3a2c92155a3bbc558 (diff)
Use 'Cow' to remove unnecessary allocations
Diffstat (limited to 'src/file')
-rw-r--r--src/file/json.rs3
-rw-r--r--src/file/toml.rs3
2 files changed, 4 insertions, 2 deletions
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<Value> {
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<Value> {
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)),