1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
use crate::core::{HashM, HashMt};
use crate::core::error::CoreResult;
use crate::core::imp::json_to_rust::names::Names;
use crate::core::imp::structs::ref_def_obj::RefDefObj;
use crate::core::imp::structs::ref_value::RefSabValue;
use crate::core::imp::structs::qv::Qv;
pub(crate) fn adjust_mut_list_item_ref(def : &RefDefObj, old_ref : HashM<String, RefSabValue>, _names : &Names) -> CoreResult<HashM<String, RefSabValue>>{
let mut old_ref = old_ref;
let mut result : HashM<String, RefSabValue> = HashMt::with_capacity(old_ref.len());
for (def_key,_, def_v) in def.refs(){
let sabun_v = if let Some(v) = old_ref.remove(def_key){ v } else {
if def_v.var_type().undefiable(){
RefSabValue::new(Qv::Undefined)
} else{
continue;
}
};
result.insert(def_key.to_string(), sabun_v);
}
Ok(result)
}