Trait Arg
Source pub trait Arg {
// Required methods
fn as_str(&self) -> Result<&str>;
fn to_string_lossy(&self) -> Cow<'_, str>;
fn as_cow_c_str(&self) -> Result<Cow<'_, CStr>>;
fn into_c_str<'b>(self) -> Result<Cow<'b, CStr>>
where Self: 'b;
fn into_with_c_str<T, F>(self, f: F) -> Result<T>
where Self: Sized,
F: FnOnce(&CStr) -> Result<T>;
}
Available on crate features fs or mount or net only.
Expand description
A trait for passing path arguments.
This is similar to AsRef<Path>, but is implemented for more
kinds of strings and can convert into more kinds of strings.
§Examples
use rustix::ffi::CStr;
use rustix::io;
use rustix::path::Arg;
pub fn touch<P: Arg>(path: P) -> io::Result<()> {
let path = path.into_c_str()?;
_touch(&path)
}
fn _touch(path: &CStr) -> io::Result<()> {
Ok(())
}
Users can then call touch("foo"), touch(cstr!("foo")),
touch(Path::new("foo")), or many other things.
Returns a view of this string as a string slice.
Available on crate feature alloc only.
Returns a potentially-lossy rendering of this string as a
Cow<'_, str>.
Available on crate feature alloc only.
Returns a view of this string as a maybe-owned CStr.
Available on crate feature alloc only.
Consumes self and returns a view of this string as a maybe-owned
CStr.
Runs a closure with self passed in as a &CStr.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.
Available on crate feature alloc only.