summaryrefslogtreecommitdiffstats
path: root/openat/src/name.rs
diff options
context:
space:
mode:
authorTomasz Kramkowski <tomasz@kramkow.ski>2023-01-27 14:22:33 +0000
committerTomasz Kramkowski <tomasz@kramkow.ski>2023-01-27 14:22:33 +0000
commitbdd8126b938de11272f79bb7f512316740469ed7 (patch)
tree5a46eaf4942f4a21552cf606b35effe5ac1c97c4 /openat/src/name.rs
parent6cef9f0fc159de4c9fd708050ec76adb4e74d390 (diff)
downloadpam_usercg_rust-bdd8126b938de11272f79bb7f512316740469ed7.tar.gz
pam_usercg_rust-bdd8126b938de11272f79bb7f512316740469ed7.tar.xz
pam_usercg_rust-bdd8126b938de11272f79bb7f512316740469ed7.zip
use cap-std
Diffstat (limited to 'openat/src/name.rs')
-rw-r--r--openat/src/name.rs76
1 files changed, 0 insertions, 76 deletions
diff --git a/openat/src/name.rs b/openat/src/name.rs
deleted file mode 100644
index c181db1..0000000
--- a/openat/src/name.rs
+++ /dev/null
@@ -1,76 +0,0 @@
-use std::ffi::{OsStr, CStr, CString};
-use std::path::{Path, PathBuf};
-use std::os::unix::ffi::OsStrExt;
-
-use crate::{Entry};
-
-
-/// The purpose of this is similar to `AsRef<Path>` but it's optimized for
-/// things that can be directly used as `CStr` (which is type passed to
-/// the underlying system call).
-///
-/// This trait should be implemented for everything for which `AsRef<Path>`
-/// is implemented
-pub trait AsPath {
- /// The return value of the `to_path` that holds data copied from the
- /// original path (if copy is needed, otherwise it's just a reference)
- type Buffer: AsRef<CStr>;
- /// Returns `None` when path contains a zero byte
- fn to_path(self) -> Option<Self::Buffer>;
-}
-
-impl<'a> AsPath for &'a Path {
- type Buffer = CString;
- fn to_path(self) -> Option<CString> {
- CString::new(self.as_os_str().as_bytes()).ok()
- }
-}
-
-impl<'a> AsPath for &'a PathBuf {
- type Buffer = CString;
- fn to_path(self) -> Option<CString> {
- CString::new(self.as_os_str().as_bytes()).ok()
- }
-}
-
-impl<'a> AsPath for &'a OsStr {
- type Buffer = CString;
- fn to_path(self) -> Option<CString> {
- CString::new(self.as_bytes()).ok()
- }
-}
-
-impl<'a> AsPath for &'a str {
- type Buffer = CString;
- fn to_path(self) -> Option<CString> {
- CString::new(self.as_bytes()).ok()
- }
-}
-
-impl<'a> AsPath for &'a String {
- type Buffer = CString;
- fn to_path(self) -> Option<CString> {
- CString::new(self.as_bytes()).ok()
- }
-}
-
-impl<'a> AsPath for String {
- type Buffer = CString;
- fn to_path(self) -> Option<CString> {
- CString::new(self).ok()
- }
-}
-
-impl<'a> AsPath for &'a CStr {
- type Buffer = &'a CStr;
- fn to_path(self) -> Option<&'a CStr> {
- Some(self)
- }
-}
-
-impl<'a> AsPath for &'a Entry {
- type Buffer = &'a CStr;
- fn to_path(self) -> Option<&'a CStr> {
- Some(&self.name)
- }
-}