@@ -30,7 +30,7 @@ use aquatic_udp_protocol::{AnnounceEvent, NumberOfBytes, PeerId};
3030use serde:: Serialize ;
3131use zerocopy:: FromBytes as _;
3232
33- use crate :: { DurationSinceUnixEpoch , IPVersion } ;
33+ use crate :: DurationSinceUnixEpoch ;
3434
3535/// Peer struct used by the core `Tracker`.
3636///
@@ -208,15 +208,6 @@ impl Peer {
208208 pub fn change_ip ( & mut self , new_ip : & IpAddr ) {
209209 self . peer_addr = SocketAddr :: new ( * new_ip, self . peer_addr . port ( ) ) ;
210210 }
211-
212- /// The IP version used by the peer: IPV4 or IPV6
213- #[ must_use]
214- pub fn ip_version ( & self ) -> IPVersion {
215- if self . peer_addr . is_ipv4 ( ) {
216- return IPVersion :: IPv4 ;
217- }
218- IPVersion :: IPv6
219- }
220211}
221212
222213use std:: panic:: Location ;
@@ -264,22 +255,21 @@ impl DerefMut for Id {
264255 }
265256}
266257
267- impl From < [ u8 ; 20 ] > for Id {
268- fn from ( bytes : [ u8 ; 20 ] ) -> Self {
269- let data = PeerId ( bytes) ;
270- Self { data }
271- }
272- }
273-
274- impl From < i32 > for Id {
275- fn from ( number : i32 ) -> Self {
258+ impl Id {
259+ #[ must_use]
260+ pub fn new < T > ( number : T ) -> Self
261+ where
262+ T : Into < i128 > ,
263+ {
264+ let number: i128 = number. into ( ) ;
276265 let number = number. to_le_bytes ( ) ;
277266 let bytes = [
278- 0u8 , 0u8 , 0u8 , 0u8 , 0u8 , 0u8 , 0u8 , 0u8 , 0u8 , 0u8 , 0u8 , 0u8 , 0u8 , 0u8 , 0u8 , 0u8 , number[ 0 ] , number[ 1 ] , number[ 2 ] ,
279- number[ 3 ] ,
267+ 0u8 , 0u8 , 0u8 , 0u8 , number [ 0 ] , number [ 1 ] , number [ 2 ] , number [ 3 ] , number [ 4 ] , number[ 5 ] , number[ 6 ] , number[ 7 ] ,
268+ number[ 8 ] , number [ 9 ] , number [ 10 ] , number [ 11 ] , number [ 12 ] , number [ 13 ] , number [ 14 ] , number [ 15 ] ,
280269 ] ;
281270
282- Id :: from ( bytes)
271+ let data = PeerId ( bytes) ;
272+ Id { data }
283273 }
284274}
285275
0 commit comments