aboutsummaryrefslogtreecommitdiff
path: root/client-native-lib/src/state.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2022-09-17 18:39:19 +0200
committermetamuffin <metamuffin@disroot.org>2022-09-17 18:39:19 +0200
commit45c7c27d5ebd54790d76dd34d97de35d221c8411 (patch)
treeef6f688f9a125102ec145083075cd3429fe17a05 /client-native-lib/src/state.rs
parentfd005b751d1abc0835c3812f4b12aed55e5aac1c (diff)
downloadkeks-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.rs27
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")
}