Skip to content

Commit

Permalink
feat: Derive Eq/Ord/Hash for (Archived) PreimageKey(Type) (#956)
Browse files Browse the repository at this point in the history
  • Loading branch information
hashcashier authored Jan 27, 2025
1 parent f3fdabf commit 66e94c6
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions crates/proof-sdk/preimage/src/key.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,13 @@ use serde::{Deserialize as SerdeDeserialize, Serialize as SerdeSerialize};
use crate::errors::PreimageOracleError;

/// <https://specs.optimism.io/experimental/fault-proof/index.html#pre-image-key-types>
#[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash)]
#[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Ord, PartialOrd, Hash)]
#[repr(u8)]
#[cfg_attr(feature = "rkyv", derive(Archive, RkyvSerialize, RkyvDeserialize))]
#[cfg_attr(
feature = "rkyv",
derive(Archive, RkyvSerialize, RkyvDeserialize),
rkyv(derive(Eq, PartialEq, Ord, PartialOrd, Hash))
)]
#[cfg_attr(feature = "serde", derive(SerdeSerialize, SerdeDeserialize))]
pub enum PreimageKeyType {
/// Local key types are local to a given instance of a fault-proof and context dependent.
Expand Down Expand Up @@ -62,8 +66,12 @@ impl TryFrom<u8> for PreimageKeyType {
/// |---------|-------------|
/// | [0, 1) | Type byte |
/// | [1, 32) | Data |
#[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash)]
#[cfg_attr(feature = "rkyv", derive(Archive, RkyvSerialize, RkyvDeserialize))]
#[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Ord, PartialOrd, Hash)]
#[cfg_attr(
feature = "rkyv",
derive(Archive, RkyvSerialize, RkyvDeserialize),
rkyv(derive(Eq, PartialEq, Ord, PartialOrd, Hash))
)]
#[cfg_attr(feature = "serde", derive(SerdeSerialize, SerdeDeserialize))]
pub struct PreimageKey {
data: [u8; 31],
Expand Down

0 comments on commit 66e94c6

Please sign in to comment.