use std::net::{SocketAddr, SocketAddrV4, SocketAddrV6}; use crate::SinglePickable; impl SinglePickable for SocketAddr { fn pick_single(str: Option<&str>) -> crate::PickerArgResult { match str { Some(s) => match s.parse::() { Ok(addr) => crate::PickerArgResult::Parsed(addr), Err(_) => crate::PickerArgResult::NotFound, }, None => crate::PickerArgResult::NotFound, } } } impl SinglePickable for SocketAddrV4 { fn pick_single(str: Option<&str>) -> crate::PickerArgResult { match str { Some(s) => match s.parse::() { Ok(addr) => crate::PickerArgResult::Parsed(addr), Err(_) => crate::PickerArgResult::NotFound, }, None => crate::PickerArgResult::NotFound, } } } impl SinglePickable for SocketAddrV6 { fn pick_single(str: Option<&str>) -> crate::PickerArgResult { match str { Some(s) => match s.parse::() { Ok(addr) => crate::PickerArgResult::Parsed(addr), Err(_) => crate::PickerArgResult::NotFound, }, None => crate::PickerArgResult::NotFound, } } }