stun-coder 2.0.0

A STUN protocol encoder and decoder for Rust. The implementation is done according to Session Traversal Utilities for NAT (STUN). STUN extensions specified by the Interactive Connectivity Establishment (ICE) protocol are also supported.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/// XORs a u8 slice
pub fn xor_byte_range(target: &mut [u8], xor: &[u8]) {
    // Make sure the target slice size is matching or bigger than the xor slice size.
    std::debug_assert!(
        target.len() <= xor.len(),
        "Target size is bigger than the XOR slice size. Target: {}, XOR: {}.",
        target.len(),
        xor.len()
    );

    target
        .iter_mut()
        .zip(xor.iter())
        .for_each(|(x1, x2)| *x1 ^= *x2);
}