aboutsummaryrefslogtreecommitdiff
path: root/src/message/signalproxy
diff options
context:
space:
mode:
Diffstat (limited to 'src/message/signalproxy')
-rw-r--r--src/message/signalproxy/initdata.rs2
-rw-r--r--src/message/signalproxy/objects/aliasmanager.rs2
-rw-r--r--src/message/signalproxy/objects/buffersyncer.rs2
-rw-r--r--src/message/signalproxy/objects/bufferviewmanager.rs6
-rw-r--r--src/message/signalproxy/objects/highlightrulemanager.rs8
-rw-r--r--src/message/signalproxy/objects/mod.rs2
-rw-r--r--src/message/signalproxy/objects/network.rs12
-rw-r--r--src/message/signalproxy/objects/networkinfo.rs4
-rw-r--r--src/message/signalproxy/translation.rs32
9 files changed, 51 insertions, 19 deletions
diff --git a/src/message/signalproxy/initdata.rs b/src/message/signalproxy/initdata.rs
index b69572a..1a31af7 100644
--- a/src/message/signalproxy/initdata.rs
+++ b/src/message/signalproxy/initdata.rs
@@ -40,7 +40,7 @@ impl Deserialize for InitData {
Self {
class_name: class_name.clone(),
object_name: object_name.clone(),
- init_data: Types::from_network(class_name.as_str(), object_name.as_str(), &mut res)?,
+ init_data: Types::from_network(class_name.as_str(), object_name.as_str(), res)?,
},
))
}
diff --git a/src/message/signalproxy/objects/aliasmanager.rs b/src/message/signalproxy/objects/aliasmanager.rs
index 7bd3ea3..ae6e734 100644
--- a/src/message/signalproxy/objects/aliasmanager.rs
+++ b/src/message/signalproxy/objects/aliasmanager.rs
@@ -133,7 +133,7 @@ mod tests {
#[test]
fn aliasmanager_from_network() {
assert_eq!(
- AliasManager::from_network_list(&mut get_dest()).unwrap(),
+ AliasManager::from_network_list(get_dest()).unwrap(),
get_src()
)
}
diff --git a/src/message/signalproxy/objects/buffersyncer.rs b/src/message/signalproxy/objects/buffersyncer.rs
index 4fd0318..2ca2155 100644
--- a/src/message/signalproxy/objects/buffersyncer.rs
+++ b/src/message/signalproxy/objects/buffersyncer.rs
@@ -312,7 +312,7 @@ mod tests {
#[test]
fn buffersyncer_from_network() {
assert_eq!(
- BufferSyncer::from_network_list(&mut get_network()).unwrap(),
+ BufferSyncer::from_network_list(get_network()).unwrap(),
get_runtime()
)
}
diff --git a/src/message/signalproxy/objects/bufferviewmanager.rs b/src/message/signalproxy/objects/bufferviewmanager.rs
index 5942375..25401ba 100644
--- a/src/message/signalproxy/objects/bufferviewmanager.rs
+++ b/src/message/signalproxy/objects/bufferviewmanager.rs
@@ -144,9 +144,9 @@ impl super::NetworkList for BufferViewManager {
])
}
- fn from_network_list(input: &mut VariantList) -> Result<Self> {
- let mut i = input.iter();
- i.position(|x| *x == Variant::ByteArray(String::from("BufferViewIds")))
+ fn from_network_list(input: VariantList) -> Result<Self> {
+ let mut i = input.into_iter();
+ i.position(|x| x == Variant::ByteArray(String::from("BufferViewIds")))
.expect("failed to get field BufferViewIds");
let ids = match i.next().expect("failed to get next field") {
diff --git a/src/message/signalproxy/objects/highlightrulemanager.rs b/src/message/signalproxy/objects/highlightrulemanager.rs
index 948f08a..c694a4c 100644
--- a/src/message/signalproxy/objects/highlightrulemanager.rs
+++ b/src/message/signalproxy/objects/highlightrulemanager.rs
@@ -277,14 +277,14 @@ mod tests {
vec![
Variant::ByteArray(s!("HighlightRuleList")),
Variant::VariantMap(map! {
- s!("id") => Variant::VariantList(vec![Variant::i32(1)]),
- s!("name") => Variant::StringList(vec![s!("testrule")]),
- s!("isRegEx") => Variant::VariantList(vec![Variant::bool(false)]),
s!("isCaseSensitive") => Variant::VariantList(vec![Variant::bool(false)]),
s!("isEnabled") => Variant::VariantList(vec![Variant::bool(true)]),
s!("isInverse") => Variant::VariantList(vec![Variant::bool(false)]),
+ s!("id") => Variant::VariantList(vec![Variant::i32(1)]),
s!("sender") => Variant::StringList(vec![s!("testuser")]),
s!("channel") => Variant::StringList(vec![s!("#test")]),
+ s!("name") => Variant::StringList(vec![s!("testrule")]),
+ s!("isRegEx") => Variant::VariantList(vec![Variant::bool(false)]),
}),
Variant::ByteArray(s!("highlightNick")),
Variant::i32(1),
@@ -318,7 +318,7 @@ mod tests {
#[test]
fn highlightrulemanager_from_network() {
assert_eq!(
- HighlightRuleManager::from_network_list(&mut get_network()).unwrap(),
+ HighlightRuleManager::from_network_list(get_network()).unwrap(),
get_runtime()
)
}
diff --git a/src/message/signalproxy/objects/mod.rs b/src/message/signalproxy/objects/mod.rs
index a196add..b478989 100644
--- a/src/message/signalproxy/objects/mod.rs
+++ b/src/message/signalproxy/objects/mod.rs
@@ -98,7 +98,7 @@ impl Types {
})
}
- pub fn from_network(class_name: &str, object_name: &str, input: &mut VariantList) -> Result<Self> {
+ pub fn from_network(class_name: &str, object_name: &str, mut input: VariantList) -> Result<Self> {
debug!("converting {} from network object: {:#?}", class_name, input);
Ok(match class_name {
"AliasManager" => Types::AliasManager(Box::new(AliasManager::from_network_list(input)?)),
diff --git a/src/message/signalproxy/objects/network.rs b/src/message/signalproxy/objects/network.rs
index 996dd80..6638996 100644
--- a/src/message/signalproxy/objects/network.rs
+++ b/src/message/signalproxy/objects/network.rs
@@ -54,6 +54,7 @@ impl Network {
/// The `channel_modes` field is populated by the ``supports["CHANMODES"]` string,
/// which is represented as the channel mode types a,b,c,d in a comma sepperated string.
+ #[allow(dead_code)]
fn determine_channel_mode_types(&mut self) {
let mut modes: Vec<&str> = self.supports.get("CHANMODES").unwrap().split(',').collect();
@@ -67,6 +68,7 @@ impl Network {
.insert(ChannelModeType::AChanmode, modes.pop().unwrap().to_owned());
}
+ #[allow(dead_code)]
fn determine_prefixes(&mut self) {
let default_prefixes = vec!['~', '&', '@', '%', '+'];
let default_prefix_modes = vec!['q', 'a', 'o', 'h', 'v'];
@@ -369,14 +371,14 @@ impl crate::message::signalproxy::NetworkList for Network {
}
// TODO VariantList -> VariantMap conversion
- fn from_network_list(input: &mut VariantList) -> Result<Self> {
+ fn from_network_list(input: VariantList) -> Result<Self> {
let mut i = input.into_iter();
let mut map: VariantMap = VariantMap::new();
while let Some(key) = i.next() {
- let key: String = key.clone().try_into()?;
+ let key: String = key.try_into()?;
let value = i.next().ok_or(ProtocolError::MissingField(key.clone()))?;
- map.insert(key, value.clone());
+ map.insert(key, value);
}
Self::from_network_map(&mut map)
@@ -552,8 +554,8 @@ impl NetworkList for Vec<NetworkServer> {
Ok(self.iter().map(|b| Variant::NetworkServer(b.clone())).collect())
}
- fn from_network_list(input: &mut super::VariantList) -> Result<Self> {
- Ok(input.iter().map(|b| b.try_into().unwrap()).collect())
+ fn from_network_list(input: super::VariantList) -> Result<Self> {
+ Ok(input.into_iter().map(|b| b.try_into().unwrap()).collect())
}
}
diff --git a/src/message/signalproxy/objects/networkinfo.rs b/src/message/signalproxy/objects/networkinfo.rs
index 1a41f84..fe98eda 100644
--- a/src/message/signalproxy/objects/networkinfo.rs
+++ b/src/message/signalproxy/objects/networkinfo.rs
@@ -212,7 +212,7 @@ mod tests {
#[test]
fn networkinfo_from_network() {
assert_eq!(
- NetworkInfo::from_network_list(&mut get_network()).unwrap(),
+ NetworkInfo::from_network_list(get_network()).unwrap(),
get_runtime()
);
@@ -221,7 +221,7 @@ mod tests {
network.remove(20);
network.remove(20);
- let left = NetworkInfo::from_network_list(&mut network).unwrap();
+ let left = NetworkInfo::from_network_list(network).unwrap();
assert_eq!(left.network_id, NetworkId(0));
}
}
diff --git a/src/message/signalproxy/translation.rs b/src/message/signalproxy/translation.rs
index 40ebac1..b765133 100644
--- a/src/message/signalproxy/translation.rs
+++ b/src/message/signalproxy/translation.rs
@@ -122,7 +122,37 @@ where
pub trait NetworkList {
fn to_network_list(&self) -> Result<VariantList>;
- fn from_network_list(input: &mut VariantList) -> Result<Self>
+ fn from_network_list(input: VariantList) -> Result<Self>
where
Self: std::marker::Sized;
}
+
+// impl<T: NetworkMap<Item = VariantMap>> NetworkList for T {
+// fn from_network_list(input: VariantList) -> Result<Self>
+// where
+// Self: std::marker::Sized + NetworkMap<Item = VariantMap>,
+// {
+// let mut i = input.into_iter();
+// let mut map: VariantMap = VariantMap::new();
+//
+// while let Some(key) = i.next() {
+// let key: String = key.try_into()?;
+// let value = i.next().ok_or(ProtocolError::MissingField(key.clone()))?;
+// map.insert(key, value);
+// }
+//
+// Self::from_network_map(&mut map)
+// }
+//
+// fn to_network_list(&self) -> Result<VariantList> {
+// let map = Self::to_network_map(self)?;
+//
+// let mut list = VariantList::new();
+// for (k, v) in map {
+// list.push(Variant::ByteArray(k));
+// list.push(v);
+// }
+//
+// Ok(list)
+// }
+// }