tangled
alpha
login
or
join now
buttplug.io
/
buttplug
20
fork
atom
Buttplug sex toy control library
20
fork
atom
overview
issues
pulls
pipelines
chore: Require BTreeMaps for client feature creation
qdot.tngl.sh
6 months ago
2009e3b9
e4242575
+6
-6
2 changed files
expand all
collapse all
unified
split
crates
buttplug_core
src
message
v4
device_message_info.rs
buttplug_server
src
device
server_device.rs
+2
-3
crates/buttplug_core/src/message/v4/device_message_info.rs
···
37
37
device_name: &str,
38
38
device_display_name: &Option<String>,
39
39
device_message_timing_gap: u32,
40
40
-
device_features: &Vec<DeviceFeature>,
40
40
+
device_features: &BTreeMap<u32, DeviceFeature>,
41
41
) -> Self {
42
42
-
let feature_map = device_features.iter().map(|x| (x.feature_index(), x.clone())).collect();
43
42
Self {
44
43
device_index,
45
44
device_name: device_name.to_owned(),
46
45
device_display_name: device_display_name.clone(),
47
46
device_message_timing_gap,
48
48
-
device_features: feature_map,
47
47
+
device_features: device_features.clone(),
49
48
}
50
49
}
51
50
}
+4
-3
crates/buttplug_server/src/device/server_device.rs
···
37
37
//! In order to handle multiple message spec versions
38
38
39
39
use std::{
40
40
-
collections::VecDeque,
40
40
+
collections::{BTreeMap, VecDeque},
41
41
fmt::{self, Debug},
42
42
sync::Arc,
43
43
time::Duration,
···
529
529
.features()
530
530
.iter()
531
531
.enumerate()
532
532
-
.map(|(i, x)| x.as_device_feature(i as u32))
533
533
-
.collect::<Vec<DeviceFeature>>(),
532
532
+
.map(|(i, x)| (i as u32, x.as_device_feature(i as u32)))
533
533
+
.filter(|(_, x)| x.output().as_ref().is_some_and(|x| x.len() > 0) || x.input().as_ref().is_some_and(|x| x.len() > 0))
534
534
+
.collect::<BTreeMap<u32, DeviceFeature>>(),
534
535
)
535
536
}
536
537