| 347 | |
| 348 | #[inline] |
| 349 | fn deserialize_graph_edge(bytes: &[u8; 24]) -> SerializedGraphEdge { |
| 350 | let flag_and_pos = u64::from_le_bytes(bytes[0..8].try_into().unwrap()); |
| 351 | let change_id = u64::from_le_bytes(bytes[8..16].try_into().unwrap()); |
| 352 | let introduced_by = u64::from_le_bytes(bytes[16..24].try_into().unwrap()); |
| 353 | let flag = EdgeFlags::from_bits_truncate((flag_and_pos >> 56) as u8); |
| 354 | let pos = flag_and_pos & ((1 << 56) - 1); |
| 355 | let dest = Position::new(NodeId::new(change_id), ChangePosition::new(pos)); |
| 356 | SerializedGraphEdge::new(flag, dest, NodeId::new(introduced_by)) |
| 357 | } |
| 358 | |
| 359 | #[inline] |
| 360 | fn serialize_graph_edge(edge: &SerializedGraphEdge) -> [u8; 24] { |