diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-07-26 03:03:16 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-07-26 03:03:16 +0800 |
| commit | 2cb8893711b73ccde946ca83e01dc315a9294c23 (patch) | |
| tree | c081d929c563a79e057fb319e6ceaf5fff51abfc /arg_picker/src/builtin/pick_pathbuf.rs | |
| parent | 451d2889211ebbae4965d61b94ec422d88cfe6c4 (diff) | |
feat(arg_picker): add SinglePickable impls for network and path types
Implement SinglePickable for IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr,
SocketAddrV4, SocketAddrV6, and PathBuf
Diffstat (limited to 'arg_picker/src/builtin/pick_pathbuf.rs')
| -rw-r--r-- | arg_picker/src/builtin/pick_pathbuf.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/arg_picker/src/builtin/pick_pathbuf.rs b/arg_picker/src/builtin/pick_pathbuf.rs new file mode 100644 index 0000000..3bd4410 --- /dev/null +++ b/arg_picker/src/builtin/pick_pathbuf.rs @@ -0,0 +1,18 @@ +use std::path::PathBuf; + +use crate::{ + PickerArgResult::{NotFound, Parsed}, + SinglePickable, +}; + +impl SinglePickable for PathBuf { + fn pick_single(str: Option<&str>) -> crate::PickerArgResult<Self> { + match str { + Some(str) => match just_fmt::fmt_path_str(str) { + Ok(formated) => Parsed(PathBuf::from(formated)), + Err(_) => NotFound, + }, + None => NotFound, + } + } +} |
