From ce320da58d2917789815bc4dafe15a9b47a9df65 Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Wed, 5 Jan 2022 07:18:52 -0600 Subject: Implement Unlink --- src/ops/entry.rs | 15 +++++++++++++++ src/ops/mod.rs | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) (limited to 'src/ops') diff --git a/src/ops/entry.rs b/src/ops/entry.rs index 6f03d9d..2998281 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 Unlink {} pub enum Rmdir {} pub trait RequestForget<'o>: Operation<'o> { @@ -32,6 +33,7 @@ pub enum ForgetList<'a> { impl Sealed for Forget {} impl Sealed for Getattr {} impl Sealed for Mkdir {} +impl Sealed for Unlink {} impl Sealed for Rmdir {} impl<'o> Operation<'o> for Forget { @@ -54,6 +56,11 @@ impl<'o> Operation<'o> for Mkdir { type ReplyTail = (); } +impl<'o> Operation<'o> for Unlink { + type RequestBody = &'o CStr; // name() + type ReplyTail = (); +} + impl<'o> Operation<'o> for Rmdir { type RequestBody = &'o CStr; // name() type ReplyTail = (); @@ -127,6 +134,14 @@ impl<'o> RequestMode<'o> for Mkdir { impl<'o> ReplyKnown<'o> for Mkdir {} +impl<'o> RequestName<'o> for Unlink { + fn name<'a>(request: &'a Request<'o, Self>) -> &'a OsStr { + c_to_os(request.body) + } +} + +impl<'o> ReplyOk<'o> for Unlink {} + impl<'o> RequestName<'o> for Rmdir { fn name<'a>(request: &'a Request<'o, Self>) -> &'a OsStr { c_to_os(request.body) diff --git a/src/ops/mod.rs b/src/ops/mod.rs index 68f5bce..c33afb4 100644 --- a/src/ops/mod.rs +++ b/src/ops/mod.rs @@ -12,7 +12,7 @@ use bytemuck::{bytes_of, Pod}; pub mod traits; pub use dir::{BufferedReaddir, Lookup, Readdir}; -pub use entry::{Forget, Getattr, Mkdir, Rmdir}; +pub use entry::{Forget, Getattr, Mkdir, Rmdir, Unlink}; pub use global::{Init, Statfs}; pub use open::{Access, Open, Opendir, Release, Releasedir}; pub use rw::{Flush, Read, Readlink, Write}; -- cgit v1.2.3