1use tract_core::internal::*;
2use crate::infer::*;
3
4use tract_core::ops::cast::Cast;
5pub use tract_core::ops::cast::cast;
6
7impl InferenceRulesOp for Cast {
8 fn rules<'r, 'p: 'r, 's: 'r>(
9 &'s self,
10 s: &mut Solver<'r>,
11 inputs: &'p [TensorProxy],
12 outputs: &'p [TensorProxy],
13 ) -> InferenceResult {
14 check_input_arity(inputs, 1)?;
15 check_output_arity(outputs, 1)?;
16 s.equals(&inputs[0].shape, &outputs[0].shape)?;
17 s.equals(&outputs[0].datum_type, self.to)?;
18 Ok(())
19 }
20
21 as_op!();
22 to_typed!();
23}