| 53 | /// Deserialize bytes to a SerializedGraphEdge |
| 54 | #[inline] |
| 55 | pub fn deserialize_edge(bytes: &[u8; 24]) -> SerializedGraphEdge { |
| 56 | let flag_and_pos = u64::from_le_bytes(bytes[0..8].try_into().unwrap()); |
| 57 | let change_id = u64::from_le_bytes(bytes[8..16].try_into().unwrap()); |
| 58 | let introduced_by = u64::from_le_bytes(bytes[16..24].try_into().unwrap()); |
| 59 | |
| 60 | let flag = EdgeFlags::from_bits_truncate((flag_and_pos >> 56) as u8); |
| 61 | let pos = flag_and_pos & ((1 << 56) - 1); |
| 62 | |
| 63 | let dest = Position::new(NodeId::new(change_id), ChangePosition::new(pos)); |
| 64 | SerializedGraphEdge::new(flag, dest, NodeId::new(introduced_by)) |
| 65 | } |
| 66 | |
| 67 | // View State Serialization |
| 68 | |