Skip to content

Commit d2b8b25

Browse files
committed
clean up CmdString
use From/Into trait to simplify code
1 parent 5892d84 commit d2b8b25

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

macros/src/lexer.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use std::iter::Peekable;
1414
pub fn scan_str_lit(lit: &Literal) -> TokenStream {
1515
let s = lit.to_string();
1616
if !s.starts_with('\"') {
17-
return quote!(::cmd_lib::CmdString::default().append(&#lit));
17+
return quote!(::cmd_lib::CmdString::from(&#lit));
1818
}
1919
let mut iter = s[1..s.len() - 1] // To trim outside ""
2020
.chars()

src/process.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -541,7 +541,7 @@ pub trait AsOsStr {
541541

542542
impl<T: ToString> AsOsStr for T {
543543
fn as_os_str(&self) -> OsString {
544-
OsString::from(self.to_string())
544+
self.to_string().into()
545545
}
546546
}
547547

@@ -559,9 +559,16 @@ impl CmdString {
559559
}
560560

561561
pub fn into_path_buf(self) -> PathBuf {
562-
PathBuf::from(self.0)
562+
self.0.into()
563563
}
564564
}
565+
566+
impl<T: ?Sized + AsRef<OsStr>> From<&T> for CmdString {
567+
fn from(s: &T) -> Self {
568+
Self(s.as_ref().into())
569+
}
570+
}
571+
565572
impl fmt::Display for CmdString {
566573
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
567574
f.write_str(&self.0.to_string_lossy())

0 commit comments

Comments
 (0)