MCPcopy Create free account
hub / github.com/GPPVM-Project/SkyLC / encode

Method encode

crates/skyl-data/src/objects.rs:35–61  ·  view source on GitHub ↗
(&self, encoder: &mut E)

Source from the content-addressed store, hash-verified

33
34impl Encode for Value {
35 fn encode<E: Encoder>(&self, encoder: &mut E) -> Result<(), EncodeError> {
36 let helper = match self {
37 Value::Int(i) => ValueSerde::Int(*i),
38 Value::Float(f) => ValueSerde::Float(*f),
39 Value::Bool(b) => ValueSerde::Bool(*b),
40 Value::String(rc_str) => ValueSerde::String(rc_str.as_ref().clone()),
41 Value::Void => ValueSerde::Void,
42 Value::Object(obj_rc) => {
43 let obj = obj_rc.borrow();
44 if let Some(instance) = obj.as_any().downcast_ref::<Instance>() {
45 ValueSerde::Object(SerializableObject::Instance {
46 fields: instance.fields.clone(),
47 })
48 } else if let Some(list) = obj.as_any().downcast_ref::<List>() {
49 ValueSerde::Object(SerializableObject::List {
50 elements: list.elements.clone(),
51 })
52 } else {
53 return Err(EncodeError::Other(
54 "Unsupported object type for serialization",
55 ));
56 }
57 }
58 };
59
60 helper.encode(encoder)
61 }
62}
63
64#[derive(Serialize, Deserialize, Encode)]

Callers 1

generate_base64_keyFunction · 0.45

Calls 4

ObjectInterface · 0.85
cloneMethod · 0.80
borrowMethod · 0.80
as_anyMethod · 0.80

Tested by

no test coverage detected