diff options
| author | Max Audron <audron@cocaine.farm> | 2025-02-26 22:52:16 +0100 |
|---|---|---|
| committer | Max Audron <audron@cocaine.farm> | 2025-02-26 22:58:03 +0100 |
| commit | a130eee7a71996f9ae50502c477a2c6494b78a83 (patch) | |
| tree | 39d5e659ad1d537728757aa542968cb49b06bd35 /src/session/mod.rs | |
| parent | implement IdentityId (diff) | |
implement NetworkId UserType
Diffstat (limited to 'src/session/mod.rs')
| -rw-r--r-- | src/session/mod.rs | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/session/mod.rs b/src/session/mod.rs index 392e6e1..31842b1 100644 --- a/src/session/mod.rs +++ b/src/session/mod.rs @@ -7,9 +7,12 @@ use crate::message::StatefulSyncableServer; use log::{debug, error, warn}; -use crate::message::{ - objects::{Types, *}, - Class, InitData, SessionInit, SyncMessage, Syncable, +use crate::{ + message::{ + objects::{Types, *}, + Class, InitData, SessionInit, SyncMessage, Syncable, + }, + primitive::NetworkId, }; // TODO implement nested types init and sync like BufferViewConfig in BufferViewManager @@ -25,7 +28,7 @@ pub struct Session { pub highlight_rule_manager: HighlightRuleManager, pub identities: Vec<Identity>, pub ignore_list_manager: IgnoreListManager, - pub networks: HashMap<i32, Network>, + pub networks: HashMap<NetworkId, Network>, pub network_config: NetworkConfig, } @@ -41,7 +44,7 @@ pub trait SessionManager { fn identities(&mut self) -> &mut Vec<Identity>; fn identity(&mut self, id: usize) -> Option<&mut Identity>; fn ignore_list_manager(&mut self) -> &mut IgnoreListManager; - fn networks(&mut self) -> &mut HashMap<i32, Network>; + fn networks(&mut self) -> &mut HashMap<NetworkId, Network>; fn network(&mut self, id: i32) -> Option<&mut Network>; fn network_config(&mut self) -> &mut NetworkConfig; @@ -166,7 +169,7 @@ pub trait SessionManager { Types::IgnoreListManager(data) => self.ignore_list_manager().init(data), Types::CertManager(data) => self.cert_manager().init(data), Types::Network(network) => { - let id: i32 = data.object_name.parse().unwrap(); + let id: NetworkId = NetworkId(data.object_name.parse().unwrap()); self.networks().insert(id, network); } Types::NetworkInfo(_) => (), @@ -225,12 +228,12 @@ impl SessionManager for Session { &mut self.ignore_list_manager } - fn networks(&mut self) -> &mut HashMap<i32, Network> { + fn networks(&mut self) -> &mut HashMap<NetworkId, Network> { &mut self.networks } fn network(&mut self, id: i32) -> Option<&mut Network> { - self.networks.get_mut(&id) + self.networks.get_mut(&NetworkId(id)) } fn network_config(&mut self) -> &mut NetworkConfig { |
