Skip to content

Commit 66e94c6

Browse files
authored
feat: Derive Eq/Ord/Hash for (Archived) PreimageKey(Type) (op-rs#956)
1 parent f3fdabf commit 66e94c6

File tree

1 file changed

+12
-4
lines changed
  • crates/proof-sdk/preimage/src

1 file changed

+12
-4
lines changed

crates/proof-sdk/preimage/src/key.rs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,13 @@ use serde::{Deserialize as SerdeDeserialize, Serialize as SerdeSerialize};
1010
use crate::errors::PreimageOracleError;
1111

1212
/// <https://specs.optimism.io/experimental/fault-proof/index.html#pre-image-key-types>
13-
#[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash)]
13+
#[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Ord, PartialOrd, Hash)]
1414
#[repr(u8)]
15-
#[cfg_attr(feature = "rkyv", derive(Archive, RkyvSerialize, RkyvDeserialize))]
15+
#[cfg_attr(
16+
feature = "rkyv",
17+
derive(Archive, RkyvSerialize, RkyvDeserialize),
18+
rkyv(derive(Eq, PartialEq, Ord, PartialOrd, Hash))
19+
)]
1620
#[cfg_attr(feature = "serde", derive(SerdeSerialize, SerdeDeserialize))]
1721
pub enum PreimageKeyType {
1822
/// Local key types are local to a given instance of a fault-proof and context dependent.
@@ -62,8 +66,12 @@ impl TryFrom<u8> for PreimageKeyType {
6266
/// |---------|-------------|
6367
/// | [0, 1) | Type byte |
6468
/// | [1, 32) | Data |
65-
#[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash)]
66-
#[cfg_attr(feature = "rkyv", derive(Archive, RkyvSerialize, RkyvDeserialize))]
69+
#[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Ord, PartialOrd, Hash)]
70+
#[cfg_attr(
71+
feature = "rkyv",
72+
derive(Archive, RkyvSerialize, RkyvDeserialize),
73+
rkyv(derive(Eq, PartialEq, Ord, PartialOrd, Hash))
74+
)]
6775
#[cfg_attr(feature = "serde", derive(SerdeSerialize, SerdeDeserialize))]
6876
pub struct PreimageKey {
6977
data: [u8; 31],

0 commit comments

Comments
 (0)