summaryrefslogtreecommitdiff
path: root/src/ops/xattr.rs
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2022-01-05 06:20:54 -0600
committerAlejandro Soto <alejandro@34project.org>2022-01-05 06:20:54 -0600
commitb424e909fb65eb5c77a4ba4082492b11278103d4 (patch)
tree69df0298f0401d53cd3899c1ea085dd4b02555d1 /src/ops/xattr.rs
parent75cced9d4c101ec2f9f04ed95621ff3a3f750eae (diff)
Refactor impls of Request as individual traits
Diffstat (limited to '')
-rw-r--r--src/ops/xattr.rs40
1 files changed, 22 insertions, 18 deletions
diff --git a/src/ops/xattr.rs b/src/ops/xattr.rs
index 2de222b..33c7cef 100644
--- a/src/ops/xattr.rs
+++ b/src/ops/xattr.rs
@@ -4,7 +4,7 @@ use crate::{
use super::{
c_to_os,
- traits::{ReplyGather, ReplyNotFound, ReplyOk},
+ traits::{ReplyGather, ReplyNotFound, ReplyOk, RequestData, RequestName, RequestSize},
};
use std::ffi::{CStr, OsStr};
@@ -52,15 +52,17 @@ impl<'o> Operation<'o> for Removexattr {
type ReplyTail = ();
}
-//TODO: flags
-impl<'o> Request<'o, Setxattr> {
- pub fn name(&self) -> &OsStr {
- let (_header, name, _value) = self.body;
+impl<'o> RequestName<'o> for Setxattr {
+ fn name<'a>(request: &'a Request<'o, Self>) -> &'a OsStr {
+ let (_header, name, _value) = request.body;
c_to_os(name)
}
+}
- pub fn value(&self) -> &[u8] {
- let (_header, _name, value) = self.body;
+//TODO: flags
+impl<'o> RequestData<'o> for Setxattr {
+ fn data<'a>(request: &'a Request<'o, Self>) -> &'a [u8] {
+ let (_header, _name, value) = request.body;
value
}
}
@@ -73,13 +75,15 @@ impl<'o> ReplyNotFound<'o> for Setxattr {
}
}
-impl<'o> Request<'o, Getxattr> {
- pub fn size(&self) -> u32 {
- self.body.0.size
+impl<'o> RequestSize<'o> for Getxattr {
+ fn size(request: &Request<'o, Self>) -> u32 {
+ request.body.0.size
}
+}
- pub fn name(&self) -> &OsStr {
- c_to_os(self.body.1)
+impl<'o> RequestName<'o> for Getxattr {
+ fn name<'a>(request: &'a Request<'o, Self>) -> &'a OsStr {
+ c_to_os(request.body.1)
}
}
@@ -119,9 +123,9 @@ impl<'o> ReplyXattrRead<'o> for Getxattr {
}
}
-impl<'o> Request<'o, Listxattr> {
- pub fn size(&self) -> u32 {
- self.body.getxattr_in.size
+impl<'o> RequestSize<'o> for Listxattr {
+ fn size(request: &Request<'o, Self>) -> u32 {
+ request.body.getxattr_in.size
}
}
@@ -140,9 +144,9 @@ impl<'o> ReplyXattrRead<'o> for Listxattr {
}
}
-impl<'o> Request<'o, Removexattr> {
- pub fn name(&self) -> &OsStr {
- c_to_os(self.body)
+impl<'o> RequestName<'o> for Removexattr {
+ fn name<'a>(request: &'a Request<'o, Self>) -> &'a OsStr {
+ c_to_os(request.body)
}
}