aboutsummaryrefslogtreecommitdiff
path: root/src/primitive/variant.rs
diff options
context:
space:
mode:
authorMax Audron <audron@cocaine.farm>2025-02-26 19:15:11 +0100
committerMax Audron <audron@cocaine.farm>2025-02-26 19:20:33 +0100
commit58eb9e51595838aa28e24db69ff01a5509852357 (patch)
tree48f0c018d14264c34287a5f3c9e4649d20cb50de /src/primitive/variant.rs
parentrefactor variant deserialization (diff)
implement IdentityId
Diffstat (limited to 'src/primitive/variant.rs')
-rw-r--r--src/primitive/variant.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/primitive/variant.rs b/src/primitive/variant.rs
index 41d20d2..e8eea86 100644
--- a/src/primitive/variant.rs
+++ b/src/primitive/variant.rs
@@ -4,8 +4,8 @@ use itertools::Itertools;
use log::{error, trace};
use crate::error::ProtocolError;
-use crate::primitive::StringList;
use crate::primitive::{self, PeerPtr};
+use crate::primitive::{IdentityId, StringList};
use crate::serialize::*;
use crate::primitive::{BufferId, BufferInfo, Date, DateTime, Message, MsgId, Time, VariantList, VariantMap};
@@ -28,6 +28,7 @@ pub enum Variant {
UserType(String, Vec<u8>),
BufferId(BufferId),
BufferInfo(BufferInfo),
+ IdentityId(IdentityId),
Message(Message),
MsgId(MsgId),
Time(Time),
@@ -190,6 +191,7 @@ impl Serialize for Variant {
}
Variant::BufferId(v) => v.serialize_variant(),
Variant::BufferInfo(v) => v.serialize_variant(),
+ Variant::IdentityId(v) => v.serialize_variant(),
Variant::Message(v) => v.serialize_variant(),
Variant::MsgId(v) => v.serialize_variant(),
Variant::PeerPtr(v) => v.serialize_variant(),
@@ -250,12 +252,13 @@ impl Deserialize for Variant {
return Ok((len + user_type_len + vlen, Variant::VariantMap(value)));
}
// As i32
- "IdentityId" | "NetworkId" => {
+ "NetworkId" => {
trace!(target: "primitive::Variant", "UserType is i32");
let (vlen, value) = i32::parse(&b[(len + user_type_len)..])?;
return Ok((len + user_type_len + vlen, Variant::i32(value)));
}
+ IdentityId::NAME => IdentityId::parse_variant(b, len + user_type_len),
PeerPtr::NAME => PeerPtr::parse_variant(b, len + user_type_len),
BufferInfo::NAME => BufferInfo::parse_variant(b, len + user_type_len),
Message::NAME => Message::parse_variant(b, len + user_type_len),