diff options
Diffstat (limited to '')
| -rw-r--r-- | src/fuse/mod.rs | 10 | ||||
| -rw-r--r-- | src/fuse/ops.rs | 3 |
2 files changed, 7 insertions, 6 deletions
diff --git a/src/fuse/mod.rs b/src/fuse/mod.rs index a4c9f06..5893d79 100644 --- a/src/fuse/mod.rs +++ b/src/fuse/mod.rs @@ -12,13 +12,13 @@ pub mod mount; pub mod session; mod private_trait { - pub trait Operation<'o> { - type RequestBody: crate::proto::Structured<'o>; - type ReplyTail; - } + pub trait Sealed {} } -use private_trait::Operation; +pub trait Operation<'o>: private_trait::Sealed { + type RequestBody: crate::proto::Structured<'o>; + type ReplyTail; +} pub type Op<'o, O = ops::Any> = (Request<'o, O>, Reply<'o, O>); diff --git a/src/fuse/ops.rs b/src/fuse/ops.rs index 4727d10..f715e12 100644 --- a/src/fuse/ops.rs +++ b/src/fuse/ops.rs @@ -18,8 +18,9 @@ use super::{ macro_rules! op { { $name:ident $operation:tt } => { - pub struct $name(()); + pub struct $name(std::convert::Infallible); + impl super::private_trait::Sealed for $name {} impl<'o> Operation<'o> for $name $operation }; |
