mirror of https://github.com/zcash/halo2.git
Impl PartialOrd and Ord for OrchardFixedBases
This commit is contained in:
parent
21060393fe
commit
70ce1ca53f
|
@ -69,11 +69,11 @@ pub enum OrchardFixedBases<C: CurveAffine> {
|
||||||
impl<C: CurveAffine> std::hash::Hash for OrchardFixedBases<C> {
|
impl<C: CurveAffine> std::hash::Hash for OrchardFixedBases<C> {
|
||||||
fn hash<H: std::hash::Hasher>(&self, state: &mut H) {
|
fn hash<H: std::hash::Hasher>(&self, state: &mut H) {
|
||||||
match *self {
|
match *self {
|
||||||
OrchardFixedBases::CommitIvkR(_) => state.write(b"CommitIvkR"),
|
OrchardFixedBases::CommitIvkR(_) => state.write(self.variant()),
|
||||||
OrchardFixedBases::NoteCommitR(_) => state.write(b"NoteCommitR"),
|
OrchardFixedBases::NoteCommitR(_) => state.write(self.variant()),
|
||||||
OrchardFixedBases::NullifierK(_) => state.write(b"NullifierK"),
|
OrchardFixedBases::NullifierK(_) => state.write(self.variant()),
|
||||||
OrchardFixedBases::ValueCommitR(_) => state.write(b"ValueCommitR"),
|
OrchardFixedBases::ValueCommitR(_) => state.write(self.variant()),
|
||||||
OrchardFixedBases::ValueCommitV(_) => state.write(b"ValueCommitV"),
|
OrchardFixedBases::ValueCommitV(_) => state.write(self.variant()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -88,6 +88,16 @@ impl<C: CurveAffine> OrchardFixedBases<C> {
|
||||||
Self::ValueCommitV(inner) => *inner,
|
Self::ValueCommitV(inner) => *inner,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn variant(&self) -> &[u8] {
|
||||||
|
match *self {
|
||||||
|
OrchardFixedBases::CommitIvkR(_) => b"CommitIvkR",
|
||||||
|
OrchardFixedBases::NoteCommitR(_) => b"NoteCommitR",
|
||||||
|
OrchardFixedBases::NullifierK(_) => b"NullifierK",
|
||||||
|
OrchardFixedBases::ValueCommitR(_) => b"ValueCommitR",
|
||||||
|
OrchardFixedBases::ValueCommitV(_) => b"ValueCommitV",
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<C: CurveAffine> PartialEq for OrchardFixedBases<C> {
|
impl<C: CurveAffine> PartialEq for OrchardFixedBases<C> {
|
||||||
|
@ -98,6 +108,18 @@ impl<C: CurveAffine> PartialEq for OrchardFixedBases<C> {
|
||||||
|
|
||||||
impl<C: CurveAffine> Eq for OrchardFixedBases<C> {}
|
impl<C: CurveAffine> Eq for OrchardFixedBases<C> {}
|
||||||
|
|
||||||
|
impl<C: CurveAffine> PartialOrd for OrchardFixedBases<C> {
|
||||||
|
fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
|
||||||
|
self.variant().partial_cmp(&other.variant())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<C: CurveAffine> Ord for OrchardFixedBases<C> {
|
||||||
|
fn cmp(&self, other: &Self) -> std::cmp::Ordering {
|
||||||
|
self.variant().cmp(&other.variant())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Copy, Clone, Debug, Eq, PartialEq)]
|
#[derive(Copy, Clone, Debug, Eq, PartialEq)]
|
||||||
pub struct OrchardFixedBase<C: CurveAffine>(C);
|
pub struct OrchardFixedBase<C: CurveAffine>(C);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue