(
context: &mut ReadContext,
type_id_num: u32,
type_info: &Option<Rc<crate::TypeInfo>>,
)
| 430 | #[cold] |
| 431 | #[inline(never)] |
| 432 | fn skip_ext( |
| 433 | context: &mut ReadContext, |
| 434 | type_id_num: u32, |
| 435 | type_info: &Option<Rc<crate::TypeInfo>>, |
| 436 | ) -> Result<(), Error> { |
| 437 | let type_info_rc: Option<Rc<crate::TypeInfo>>; |
| 438 | let type_info_value = if type_info.is_none() { |
| 439 | let remote_type_info = context.read_any_type_info()?; |
| 440 | let remote_type_id = remote_type_info.get_type_id() as u32; |
| 441 | ensure!( |
| 442 | type_id_num == remote_type_id, |
| 443 | Error::type_mismatch(type_id_num, remote_type_id) |
| 444 | ); |
| 445 | type_info_rc = Some(remote_type_info); |
| 446 | type_info_rc.as_ref().unwrap() |
| 447 | } else { |
| 448 | type_info.as_ref().unwrap() |
| 449 | }; |
| 450 | type_info_value.get_harness().get_read_data_fn()(context)?; |
| 451 | Ok(()) |
| 452 | } |
| 453 | |
| 454 | // call when is_field && is_compatible_mode |
| 455 | #[cold] |
no test coverage detected