| 34 | /// Deserialize bytes to a SerializedGraphEdge |
| 35 | #[inline] |
| 36 | pub fn deserialize_edge(bytes: &[u8; 24]) -> SerializedGraphEdge { |
| 37 | let flag_and_pos = u64::from_le_bytes(bytes[0..8].try_into().unwrap()); |
| 38 | let change_id = u64::from_le_bytes(bytes[8..16].try_into().unwrap()); |
| 39 | let introduced_by = u64::from_le_bytes(bytes[16..24].try_into().unwrap()); |
| 40 | |
| 41 | let flag = EdgeFlags::from_bits_truncate((flag_and_pos >> 56) as u8); |
| 42 | let pos = flag_and_pos & ((1 << 56) - 1); |
| 43 | |
| 44 | let dest = Position::new(NodeId::new(change_id), ChangePosition::new(pos)); |
| 45 | SerializedGraphEdge::new(flag, dest, NodeId::new(introduced_by)) |
| 46 | } |
| 47 | |
| 48 | // View State Serialization |
| 49 | |