aboutsummaryrefslogtreecommitdiff
path: root/arg_picker/src/builtin/pick_socket_attr.rs
diff options
context:
space:
mode:
Diffstat (limited to 'arg_picker/src/builtin/pick_socket_attr.rs')
-rw-r--r--arg_picker/src/builtin/pick_socket_attr.rs39
1 files changed, 18 insertions, 21 deletions
diff --git a/arg_picker/src/builtin/pick_socket_attr.rs b/arg_picker/src/builtin/pick_socket_attr.rs
index 0c0dd71..ba9a410 100644
--- a/arg_picker/src/builtin/pick_socket_attr.rs
+++ b/arg_picker/src/builtin/pick_socket_attr.rs
@@ -4,36 +4,33 @@ use crate::SinglePickable;
impl SinglePickable for SocketAddr {
fn pick_single(str: Option<&str>) -> crate::PickerArgResult<Self> {
- match str {
- Some(s) => match s.parse::<SocketAddr>() {
- Ok(addr) => crate::PickerArgResult::Parsed(addr),
- Err(_) => crate::PickerArgResult::NotFound,
- },
- None => crate::PickerArgResult::NotFound,
- }
+ str.map_or(crate::PickerArgResult::NotFound, |s| {
+ s.parse::<Self>()
+ .map_or(crate::PickerArgResult::NotFound, |addr| {
+ crate::PickerArgResult::Parsed(addr)
+ })
+ })
}
}
impl SinglePickable for SocketAddrV4 {
fn pick_single(str: Option<&str>) -> crate::PickerArgResult<Self> {
- match str {
- Some(s) => match s.parse::<SocketAddrV4>() {
- Ok(addr) => crate::PickerArgResult::Parsed(addr),
- Err(_) => crate::PickerArgResult::NotFound,
- },
- None => crate::PickerArgResult::NotFound,
- }
+ str.map_or(crate::PickerArgResult::NotFound, |s| {
+ s.parse::<Self>()
+ .map_or(crate::PickerArgResult::NotFound, |addr| {
+ crate::PickerArgResult::Parsed(addr)
+ })
+ })
}
}
impl SinglePickable for SocketAddrV6 {
fn pick_single(str: Option<&str>) -> crate::PickerArgResult<Self> {
- match str {
- Some(s) => match s.parse::<SocketAddrV6>() {
- Ok(addr) => crate::PickerArgResult::Parsed(addr),
- Err(_) => crate::PickerArgResult::NotFound,
- },
- None => crate::PickerArgResult::NotFound,
- }
+ str.map_or(crate::PickerArgResult::NotFound, |s| {
+ s.parse::<Self>()
+ .map_or(crate::PickerArgResult::NotFound, |addr| {
+ crate::PickerArgResult::Parsed(addr)
+ })
+ })
}
}