(
&self,
obj: PyObjectRef,
errors: Option<PyUtf8StrRef>,
vm: &VirtualMachine,
)
| 72 | } |
| 73 | |
| 74 | pub fn encode( |
| 75 | &self, |
| 76 | obj: PyObjectRef, |
| 77 | errors: Option<PyUtf8StrRef>, |
| 78 | vm: &VirtualMachine, |
| 79 | ) -> PyResult { |
| 80 | let args = match errors { |
| 81 | Some(errors) => vec![obj, errors.into_wtf8().into()], |
| 82 | None => vec![obj], |
| 83 | }; |
| 84 | let res = self.get_encode_func().call(args, vm)?; |
| 85 | let res = res |
| 86 | .downcast::<PyTuple>() |
| 87 | .ok() |
| 88 | .filter(|tuple| tuple.len() == 2) |
| 89 | .ok_or_else(|| vm.new_type_error("encoder must return a tuple (object, integer)"))?; |
| 90 | // we don't actually care about the integer |
| 91 | Ok(res[0].clone()) |
| 92 | } |
| 93 | |
| 94 | pub fn decode( |
| 95 | &self, |
no test coverage detected