summaryrefslogtreecommitdiff
path: root/src/ops/entry.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/ops/entry.rs')
-rw-r--r--src/ops/entry.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/ops/entry.rs b/src/ops/entry.rs
index a65be29..6f03d9d 100644
--- a/src/ops/entry.rs
+++ b/src/ops/entry.rs
@@ -14,6 +14,7 @@ use std::ffi::{CStr, OsStr};
pub enum Forget {}
pub enum Getattr {}
pub enum Mkdir {}
+pub enum Rmdir {}
pub trait RequestForget<'o>: Operation<'o> {
fn forget_list<'a>(request: &'a Request<'o, Self>) -> ForgetList<'a>;
@@ -31,6 +32,7 @@ pub enum ForgetList<'a> {
impl Sealed for Forget {}
impl Sealed for Getattr {}
impl Sealed for Mkdir {}
+impl Sealed for Rmdir {}
impl<'o> Operation<'o> for Forget {
type RequestBody = proto::OpcodeSelect<
@@ -52,6 +54,11 @@ impl<'o> Operation<'o> for Mkdir {
type ReplyTail = ();
}
+impl<'o> Operation<'o> for Rmdir {
+ type RequestBody = &'o CStr; // name()
+ type ReplyTail = ();
+}
+
impl<'o> RequestForget<'o> for Forget {
fn forget_list<'a>(request: &'a Request<'o, Self>) -> ForgetList<'a> {
use {proto::OpcodeSelect::*, ForgetList::*};
@@ -119,3 +126,11 @@ impl<'o> RequestMode<'o> for Mkdir {
}
impl<'o> ReplyKnown<'o> for Mkdir {}
+
+impl<'o> RequestName<'o> for Rmdir {
+ fn name<'a>(request: &'a Request<'o, Self>) -> &'a OsStr {
+ c_to_os(request.body)
+ }
+}
+
+impl<'o> ReplyOk<'o> for Rmdir {}