diff options
author | metamuffin <metamuffin@disroot.org> | 2022-09-17 18:39:19 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-09-17 18:39:19 +0200 |
commit | 45c7c27d5ebd54790d76dd34d97de35d221c8411 (patch) | |
tree | ef6f688f9a125102ec145083075cd3429fe17a05 /client-native-lib/src/state.rs | |
parent | fd005b751d1abc0835c3812f4b12aed55e5aac1c (diff) | |
download | keks-meet-45c7c27d5ebd54790d76dd34d97de35d221c8411.tar keks-meet-45c7c27d5ebd54790d76dd34d97de35d221c8411.tar.bz2 keks-meet-45c7c27d5ebd54790d76dd34d97de35d221c8411.tar.zst |
remove api interface from native lib (breaks rift)
Diffstat (limited to 'client-native-lib/src/state.rs')
-rw-r--r-- | client-native-lib/src/state.rs | 27 |
1 files changed, 6 insertions, 21 deletions
diff --git a/client-native-lib/src/state.rs b/client-native-lib/src/state.rs index af4a05b..6182e66 100644 --- a/client-native-lib/src/state.rs +++ b/client-native-lib/src/state.rs @@ -3,9 +3,7 @@ which is licensed under the GNU Affero General Public License (version 3); see /COPYING. Copyright (C) 2022 metamuffin <metamuffin@disroot.org> */ -use std::{collections::HashMap, pin::Pin, sync::Arc}; - -use futures_util::Future; +use std::{collections::HashMap, sync::Arc}; use log::warn; use tokio::sync::{mpsc::UnboundedSender, RwLock}; use webrtc::api::API; @@ -17,27 +15,16 @@ use crate::{ Config, }; -pub trait HasPeer { - fn peer(&self) -> &Arc<Peer>; -} -pub trait PeerInit<P> { - fn add_peer( - &self, - p: Arc<Peer>, - ) -> Pin<Box<dyn Future<Output = Arc<P>> + 'static + Send + Sync>>; -} - -pub struct State<P: HasPeer, I: PeerInit<P>> { - pub sup: Arc<I>, +pub struct State { pub config: Config, pub api: API, pub key: Key, pub my_id: RwLock<Option<usize>>, pub sender: UnboundedSender<ServerboundPacket>, - pub peers: RwLock<HashMap<usize, Arc<P>>>, + pub peers: RwLock<HashMap<usize, Arc<Peer>>>, pub relay_tx: UnboundedSender<(usize, RelayMessage)>, } -impl<P: HasPeer, I: PeerInit<P>> State<P, I> { +impl State { pub async fn my_id(&self) -> usize { self.my_id.read().await.expect("not initialized yet") } @@ -56,9 +43,7 @@ impl<P: HasPeer, I: PeerInit<P>> State<P, I> { } else { self.peers.write().await.insert( id, - self.sup - .add_peer(Peer::create(self.clone(), self.relay_tx.clone(), id).await) - .await, + Peer::create(self.clone(), self.relay_tx.clone(), id).await, ); } } @@ -75,7 +60,7 @@ impl<P: HasPeer, I: PeerInit<P>> State<P, I> { pub async fn on_relay(&self, sender: usize, p: RelayMessage) { if let Some(peer) = self.peers.read().await.get(&sender).cloned() { - peer.peer().on_relay(p).await + peer.on_relay(p).await } else { warn!("got a packet from a non-existent peer") } |