1use rand::distributions::Alphanumeric;
2use rand::Rng;
3
4pub fn generate_peer_id() -> String {
5 let mut rng = rand::thread_rng();
6 let mut peer_id = String::with_capacity(20);
7 peer_id.push_str("RustyBit-");
8 peer_id.extend((0..11).map(|_| rng.sample(Alphanumeric) as char));
9 peer_id
10}
11
12pub fn piece_size_from_idx(number_of_pieces: usize, total_length: usize, piece_size: usize, idx: usize) -> usize {
13 let size = if number_of_pieces - 1 == idx {
14 let remainder = total_length % piece_size;
15 if remainder == 0 {
16 piece_size
17 } else {
18 remainder
19 }
20 } else {
21 piece_size
22 };
23
24 size
25}