From 28ce33b54f9dd2be9ac20967a6aff20d4d44f2ca Mon Sep 17 00:00:00 2001 From: Clemens Winter Date: Sat, 3 Aug 2024 15:38:18 -0700 Subject: [PATCH] Add missing file --- src/engine/operators/empty.rs | 43 +++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/engine/operators/empty.rs diff --git a/src/engine/operators/empty.rs b/src/engine/operators/empty.rs new file mode 100644 index 00000000..ae87dd0a --- /dev/null +++ b/src/engine/operators/empty.rs @@ -0,0 +1,43 @@ +use crate::engine::*; +use std::fmt; + +pub struct Empty { + pub output: BufferRef, +} + +impl<'a, T> VecOperator<'a> for Empty where T: VecData + 'a { + fn execute(&mut self, _: bool, _: &mut Scratchpad<'a>) -> Result<(), QueryError> { + Ok(()) + } + + fn init(&mut self, _: usize, _: usize, scratchpad: &mut Scratchpad<'a>) { + scratchpad.set(self.output, vec![]); + } + + fn inputs(&self) -> Vec> { + vec![] + } + fn inputs_mut(&mut self) -> Vec<&mut usize> { vec![] } + fn outputs(&self) -> Vec> { + vec![self.output.any()] + } + fn can_stream_input(&self, _: usize) -> bool { + false + } + fn can_stream_output(&self, _: usize) -> bool { + false + } + fn allocates(&self) -> bool { + false + } + + fn display_op(&self, _: bool) -> String { + "Empty".to_string() + } +} + +impl fmt::Debug for Empty where T: VecData { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + write!(f, "{}", self.display_op(false)) + } +}