rustybit_lib/
util.rs

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}