use crate::ich::StableHashingContext; use rustc_data_structures::stable_hasher::{HashStable, StableHasher, StableHasherResult}; #[derive(Copy, Clone, Debug, RustcEncodable, RustcDecodable)] pub enum SignalledError { SawSomeError, NoErrorsSeen } impl Default for SignalledError { fn default() -> SignalledError { SignalledError::NoErrorsSeen } } impl_stable_hash_for!(enum self::SignalledError { SawSomeError, NoErrorsSeen }); #[derive(Debug, Default, RustcEncodable, RustcDecodable)] pub struct BorrowCheckResult { pub signalled_any_error: SignalledError, } impl<'a> HashStable> for BorrowCheckResult { fn hash_stable(&self, hcx: &mut StableHashingContext<'a>, hasher: &mut StableHasher) { let BorrowCheckResult { ref signalled_any_error, } = *self; signalled_any_error.hash_stable(hcx, hasher); } }