Crates.io | from-os-str |
lib.rs | from-os-str |
version | 0.1.0 |
source | src |
created_at | 2022-04-05 14:03:35.409207 |
updated_at | 2022-04-05 14:03:35.409207 |
description | A macro that uses autoref based specialization to guess how to convert a &OsStr to a more useful type |
homepage | |
repository | https://github.com/aj-bagwell/from-os-str |
max_upload_size | |
id | 562622 |
size | 12,117 |
A macro to convert a &OsStr to a more useful types
Dual-licensed under Apache 2.0 or MIT
A macro for trying to convert an &OsStr to another more usefull type There are lots of ways to do that and this will pick the best via autoref based specialization
e.g. a PathBuf
will be created via From<OsString>
not From<String>
so non UTF8 paths
will work.
It is most useful in other macros where you don't know the type you are converting to.
use from_os_str::*;
use std::ffi::OsStr;
use std::path::Path;
let os_str = OsStr::new("123");
let path = try_from_os_str!(os_str as &Path);
assert_eq!(path, Ok(Path::new("123")));
let int = try_from_os_str!(os_str as u8);
assert_eq!(int, Ok(123));
It will use one of the following traits (in order of preferece) to convert the &OsStr
to the type you want.