diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 923a77d..7167cbb 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -3,6 +3,7 @@ mod db; mod downloads; mod library; mod remote; +mod p2p; #[cfg(test)] mod tests; diff --git a/src-tauri/src/p2p/discovery.rs b/src-tauri/src/p2p/discovery.rs new file mode 100644 index 0000000..438efff --- /dev/null +++ b/src-tauri/src/p2p/discovery.rs @@ -0,0 +1,27 @@ +use serde::{Deserialize, Serialize}; +use url::Url; + +#[derive(Serialize, Deserialize, Debug)] +pub struct P2PManager { + peers: Vec +} + +#[derive(Serialize, Deserialize, Debug)] +pub struct Peer { + endpoints: Vec, + current_endpoint: usize, + // TODO: Implement Wireguard tunnels +} + +impl Peer { + pub fn get_current_endpoint(&self) -> Url { + return self.endpoints[self.current_endpoint].clone(); + } + pub fn connect(&mut self, ) { + todo!() + } + pub fn disconnect(&mut self) { + todo!() + } + +} \ No newline at end of file diff --git a/src-tauri/src/p2p/mod.rs b/src-tauri/src/p2p/mod.rs new file mode 100644 index 0000000..fc4b5cb --- /dev/null +++ b/src-tauri/src/p2p/mod.rs @@ -0,0 +1 @@ +pub mod discovery;