address 0.19.0-rc.1

This library aids in processing network addresses.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/// Strips the surrounding brackets from the `address` string.
///
/// Returns `None` if the address is not bracketed.
///
/// # Examples
/// [::1]   -> `Some("::1")`
/// []      -> `Some("")`
/// ::1     -> `None`
/// [::1    -> `None`
pub(crate) fn strip_brackets(address: &str) -> Option<&str> {
    let bytes: &[u8] = address.as_bytes();
    if bytes.len() >= 2 && bytes[0] == b'[' && bytes[bytes.len() - 1] == b']' {
        Some(&address[1..address.len() - 1])
    } else {
        None
    }
}