aboutsummaryrefslogtreecommitdiff
path: root/arg_picker/src/builtin/pick_pathbuf.rs
diff options
context:
space:
mode:
Diffstat (limited to 'arg_picker/src/builtin/pick_pathbuf.rs')
-rw-r--r--arg_picker/src/builtin/pick_pathbuf.rs18
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,
+ }
+ }
+}