mirror of https://github.com/hannobraun/Fornjot
Replace manual implementations with `derive`s
This commit is contained in:
parent
68da99913a
commit
f4f9ce2d89
|
@ -1,5 +1,3 @@
|
||||||
use std::hash::{Hash, Hasher};
|
|
||||||
|
|
||||||
use super::Object;
|
use super::Object;
|
||||||
|
|
||||||
/// A reference to an object, which includes a local form
|
/// A reference to an object, which includes a local form
|
||||||
|
@ -14,7 +12,7 @@ use super::Object;
|
||||||
/// terms that are useful to those objects. Two instances of `LocalForm` are
|
/// terms that are useful to those objects. Two instances of `LocalForm` are
|
||||||
/// equal, if both the local and the canonical forms are equal. The equality of
|
/// equal, if both the local and the canonical forms are equal. The equality of
|
||||||
/// the handle that refers to the canonical form is disregarded.
|
/// the handle that refers to the canonical form is disregarded.
|
||||||
#[derive(Clone, Debug, Eq, Ord, PartialOrd)]
|
#[derive(Clone, Debug, Eq, PartialEq, Hash, Ord, PartialOrd)]
|
||||||
pub struct LocalForm<Local, Canonical: Object> {
|
pub struct LocalForm<Local, Canonical: Object> {
|
||||||
local: Local,
|
local: Local,
|
||||||
canonical: Canonical,
|
canonical: Canonical,
|
||||||
|
@ -50,24 +48,3 @@ impl<Canonical: Object> LocalForm<Canonical, Canonical> {
|
||||||
Self::new(canonical.clone(), canonical)
|
Self::new(canonical.clone(), canonical)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<Local, Canonical: Object> PartialEq for LocalForm<Local, Canonical>
|
|
||||||
where
|
|
||||||
Local: PartialEq,
|
|
||||||
Canonical: PartialEq,
|
|
||||||
{
|
|
||||||
fn eq(&self, other: &Self) -> bool {
|
|
||||||
self.local == other.local && self.canonical == other.canonical
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<Local, Canonical: Object> Hash for LocalForm<Local, Canonical>
|
|
||||||
where
|
|
||||||
Local: Hash,
|
|
||||||
Canonical: Hash,
|
|
||||||
{
|
|
||||||
fn hash<H: Hasher>(&self, state: &mut H) {
|
|
||||||
self.local.hash(state);
|
|
||||||
self.canonical.hash(state);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue