1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
use crate::internal::*; #[derive(Debug, Clone)] pub struct UnimplementedOp { outputs: usize, name: String, message: String, } impl UnimplementedOp { pub fn new(outputs: usize, name: impl AsRef<str>, message: impl AsRef<str>) -> UnimplementedOp { UnimplementedOp { outputs, name: name.as_ref().to_string(), message: message.as_ref().to_string(), } } } impl Op for UnimplementedOp { fn name(&self) -> Cow<str> { format!("Unimplemented({})", self.name).into() } not_a_typed_op!(); not_a_pulsed_op!(); } impl StatefullOp for UnimplementedOp { fn state( &self, _session: &mut SessionState, node_id: usize, ) -> TractResult<Option<Box<dyn OpState>>> { bail!("unimplemented operation: #{} {}", node_id, self.name) } }