Skip to content

Commit 71278a5

Browse files
committed
reduce clones
1 parent c31ab60 commit 71278a5

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

projects/ssddOnTop/src/jit/model.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,10 @@ impl<'a> Fields1<'a> {
4646
serde_json_borrow::Value::Object(ans)
4747
}
4848
#[inline(always)]
49-
fn finalize_inner(field: &'a Field1<'a>, mut value: Option<serde_json_borrow::Value<'a>>, index: Option<usize>) -> serde_json_borrow::Value<'a> {
49+
fn finalize_inner(field: &'a Field1<'a>, mut value: Option<&'a serde_json_borrow::Value<'a>>, index: Option<usize>) -> serde_json_borrow::Value<'a> {
5050
if let Some(val) = &field.resolved {
5151
if value.is_none() {
52-
value = Some(val.clone());
52+
value = Some(val);
5353
}
5454
}
5555
if let Some(val) = value.clone(){
@@ -60,12 +60,12 @@ impl<'a> Fields1<'a> {
6060

6161
if field.nested.is_empty() {
6262
let val = obj.get_key(field.name);
63-
let value = Self::finalize_inner(field, val.cloned(), index);
63+
let value = Self::finalize_inner(field, val, index);
6464
ans.insert(field.name, value);
6565
} else {
6666
for child in field.nested.iter() {
6767
let child_name = child.name;
68-
let val = obj.get_key(child.name).cloned();
68+
let val = obj.get_key(child.name);
6969
let val = Self::finalize_inner(child, val, index);
7070
ans.insert(child_name, val);
7171
}
@@ -75,19 +75,19 @@ impl<'a> Fields1<'a> {
7575
}
7676
(Some(arr), _) => {
7777
if let Some(index) = index {
78-
let val = arr.get(index).cloned();
78+
let val = arr.get(index);
7979
let val = Self::finalize_inner(field, val, None);
8080
val
8181
} else {
8282
let mut ans = vec![];
8383
for (i, val) in arr.iter().enumerate() {
84-
let val = Self::finalize_inner(field, Some(val.clone()), Some(i));
84+
let val = Self::finalize_inner(field, Some(val), Some(i));
8585
ans.push(val);
8686
}
8787
serde_json_borrow::Value::Array(ans)
8888
}
8989
}
90-
_ => value.unwrap_or_default(),
90+
_ => value.cloned().unwrap_or_default(),
9191
}
9292
} else {
9393
serde_json_borrow::Value::Null
@@ -162,25 +162,25 @@ impl Fields {
162162
for mut field in fields {
163163
let mut parent_val = None;
164164

165-
if let Some(ir) = field.ir.clone() {
165+
if let Some(ir) = field.ir.as_ref() {
166166
if let Some(val) = field.args.clone() {
167167
eval_context = eval_context.with_args(val);
168168
}
169169

170170
let val = match &parent {
171171
Some(val) => {
172-
match val.clone().into_serde() {
172+
match val.serde() {
173173
serde_json::Value::Array(arr) => {
174174
let mut ans = vec![];
175175
for val in arr {
176-
eval_context = eval_context.with_value(Value::new(val));
176+
eval_context = eval_context.with_value(Value::new(val.clone()));
177177
let val = ir.eval(&mut eval_context.clone()).await?;
178178
ans.push(val.into_serde());
179179
}
180180
Some(Value::new(serde_json::Value::Array(ans)))
181181
}
182182
val => {
183-
eval_context = eval_context.with_value(Value::new(val));
183+
eval_context = eval_context.with_value(Value::new(val.clone()));
184184
let val = ir.eval(&mut eval_context.clone()).await?;
185185
Some(val)
186186
}

0 commit comments

Comments
 (0)