1fad3a1d3Sopenharmony_ci// This file is @generated by syn-internal-codegen. 2fad3a1d3Sopenharmony_ci// It is not intended for manual editing. 3fad3a1d3Sopenharmony_ci 4fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 5fad3a1d3Sopenharmony_ciuse crate::tt::TokenStreamHelper; 6fad3a1d3Sopenharmony_ciuse crate::*; 7fad3a1d3Sopenharmony_ciuse std::hash::{Hash, Hasher}; 8fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 9fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 10fad3a1d3Sopenharmony_ciimpl Hash for Abi { 11fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 12fad3a1d3Sopenharmony_ci where 13fad3a1d3Sopenharmony_ci H: Hasher, 14fad3a1d3Sopenharmony_ci { 15fad3a1d3Sopenharmony_ci self.name.hash(state); 16fad3a1d3Sopenharmony_ci } 17fad3a1d3Sopenharmony_ci} 18fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 19fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 20fad3a1d3Sopenharmony_ciimpl Hash for AngleBracketedGenericArguments { 21fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 22fad3a1d3Sopenharmony_ci where 23fad3a1d3Sopenharmony_ci H: Hasher, 24fad3a1d3Sopenharmony_ci { 25fad3a1d3Sopenharmony_ci self.colon2_token.hash(state); 26fad3a1d3Sopenharmony_ci self.args.hash(state); 27fad3a1d3Sopenharmony_ci } 28fad3a1d3Sopenharmony_ci} 29fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 30fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 31fad3a1d3Sopenharmony_ciimpl Hash for Arm { 32fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 33fad3a1d3Sopenharmony_ci where 34fad3a1d3Sopenharmony_ci H: Hasher, 35fad3a1d3Sopenharmony_ci { 36fad3a1d3Sopenharmony_ci self.attrs.hash(state); 37fad3a1d3Sopenharmony_ci self.pat.hash(state); 38fad3a1d3Sopenharmony_ci self.guard.hash(state); 39fad3a1d3Sopenharmony_ci self.body.hash(state); 40fad3a1d3Sopenharmony_ci self.comma.hash(state); 41fad3a1d3Sopenharmony_ci } 42fad3a1d3Sopenharmony_ci} 43fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 44fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 45fad3a1d3Sopenharmony_ciimpl Hash for AssocConst { 46fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 47fad3a1d3Sopenharmony_ci where 48fad3a1d3Sopenharmony_ci H: Hasher, 49fad3a1d3Sopenharmony_ci { 50fad3a1d3Sopenharmony_ci self.ident.hash(state); 51fad3a1d3Sopenharmony_ci self.generics.hash(state); 52fad3a1d3Sopenharmony_ci self.value.hash(state); 53fad3a1d3Sopenharmony_ci } 54fad3a1d3Sopenharmony_ci} 55fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 56fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 57fad3a1d3Sopenharmony_ciimpl Hash for AssocType { 58fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 59fad3a1d3Sopenharmony_ci where 60fad3a1d3Sopenharmony_ci H: Hasher, 61fad3a1d3Sopenharmony_ci { 62fad3a1d3Sopenharmony_ci self.ident.hash(state); 63fad3a1d3Sopenharmony_ci self.generics.hash(state); 64fad3a1d3Sopenharmony_ci self.ty.hash(state); 65fad3a1d3Sopenharmony_ci } 66fad3a1d3Sopenharmony_ci} 67fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 68fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 69fad3a1d3Sopenharmony_ciimpl Hash for AttrStyle { 70fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 71fad3a1d3Sopenharmony_ci where 72fad3a1d3Sopenharmony_ci H: Hasher, 73fad3a1d3Sopenharmony_ci { 74fad3a1d3Sopenharmony_ci match self { 75fad3a1d3Sopenharmony_ci AttrStyle::Outer => { 76fad3a1d3Sopenharmony_ci state.write_u8(0u8); 77fad3a1d3Sopenharmony_ci } 78fad3a1d3Sopenharmony_ci AttrStyle::Inner(_) => { 79fad3a1d3Sopenharmony_ci state.write_u8(1u8); 80fad3a1d3Sopenharmony_ci } 81fad3a1d3Sopenharmony_ci } 82fad3a1d3Sopenharmony_ci } 83fad3a1d3Sopenharmony_ci} 84fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 85fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 86fad3a1d3Sopenharmony_ciimpl Hash for Attribute { 87fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 88fad3a1d3Sopenharmony_ci where 89fad3a1d3Sopenharmony_ci H: Hasher, 90fad3a1d3Sopenharmony_ci { 91fad3a1d3Sopenharmony_ci self.style.hash(state); 92fad3a1d3Sopenharmony_ci self.meta.hash(state); 93fad3a1d3Sopenharmony_ci } 94fad3a1d3Sopenharmony_ci} 95fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 96fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 97fad3a1d3Sopenharmony_ciimpl Hash for BareFnArg { 98fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 99fad3a1d3Sopenharmony_ci where 100fad3a1d3Sopenharmony_ci H: Hasher, 101fad3a1d3Sopenharmony_ci { 102fad3a1d3Sopenharmony_ci self.attrs.hash(state); 103fad3a1d3Sopenharmony_ci self.name.hash(state); 104fad3a1d3Sopenharmony_ci self.ty.hash(state); 105fad3a1d3Sopenharmony_ci } 106fad3a1d3Sopenharmony_ci} 107fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 108fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 109fad3a1d3Sopenharmony_ciimpl Hash for BareVariadic { 110fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 111fad3a1d3Sopenharmony_ci where 112fad3a1d3Sopenharmony_ci H: Hasher, 113fad3a1d3Sopenharmony_ci { 114fad3a1d3Sopenharmony_ci self.attrs.hash(state); 115fad3a1d3Sopenharmony_ci self.name.hash(state); 116fad3a1d3Sopenharmony_ci self.comma.hash(state); 117fad3a1d3Sopenharmony_ci } 118fad3a1d3Sopenharmony_ci} 119fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 120fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 121fad3a1d3Sopenharmony_ciimpl Hash for BinOp { 122fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 123fad3a1d3Sopenharmony_ci where 124fad3a1d3Sopenharmony_ci H: Hasher, 125fad3a1d3Sopenharmony_ci { 126fad3a1d3Sopenharmony_ci match self { 127fad3a1d3Sopenharmony_ci BinOp::Add(_) => { 128fad3a1d3Sopenharmony_ci state.write_u8(0u8); 129fad3a1d3Sopenharmony_ci } 130fad3a1d3Sopenharmony_ci BinOp::Sub(_) => { 131fad3a1d3Sopenharmony_ci state.write_u8(1u8); 132fad3a1d3Sopenharmony_ci } 133fad3a1d3Sopenharmony_ci BinOp::Mul(_) => { 134fad3a1d3Sopenharmony_ci state.write_u8(2u8); 135fad3a1d3Sopenharmony_ci } 136fad3a1d3Sopenharmony_ci BinOp::Div(_) => { 137fad3a1d3Sopenharmony_ci state.write_u8(3u8); 138fad3a1d3Sopenharmony_ci } 139fad3a1d3Sopenharmony_ci BinOp::Rem(_) => { 140fad3a1d3Sopenharmony_ci state.write_u8(4u8); 141fad3a1d3Sopenharmony_ci } 142fad3a1d3Sopenharmony_ci BinOp::And(_) => { 143fad3a1d3Sopenharmony_ci state.write_u8(5u8); 144fad3a1d3Sopenharmony_ci } 145fad3a1d3Sopenharmony_ci BinOp::Or(_) => { 146fad3a1d3Sopenharmony_ci state.write_u8(6u8); 147fad3a1d3Sopenharmony_ci } 148fad3a1d3Sopenharmony_ci BinOp::BitXor(_) => { 149fad3a1d3Sopenharmony_ci state.write_u8(7u8); 150fad3a1d3Sopenharmony_ci } 151fad3a1d3Sopenharmony_ci BinOp::BitAnd(_) => { 152fad3a1d3Sopenharmony_ci state.write_u8(8u8); 153fad3a1d3Sopenharmony_ci } 154fad3a1d3Sopenharmony_ci BinOp::BitOr(_) => { 155fad3a1d3Sopenharmony_ci state.write_u8(9u8); 156fad3a1d3Sopenharmony_ci } 157fad3a1d3Sopenharmony_ci BinOp::Shl(_) => { 158fad3a1d3Sopenharmony_ci state.write_u8(10u8); 159fad3a1d3Sopenharmony_ci } 160fad3a1d3Sopenharmony_ci BinOp::Shr(_) => { 161fad3a1d3Sopenharmony_ci state.write_u8(11u8); 162fad3a1d3Sopenharmony_ci } 163fad3a1d3Sopenharmony_ci BinOp::Eq(_) => { 164fad3a1d3Sopenharmony_ci state.write_u8(12u8); 165fad3a1d3Sopenharmony_ci } 166fad3a1d3Sopenharmony_ci BinOp::Lt(_) => { 167fad3a1d3Sopenharmony_ci state.write_u8(13u8); 168fad3a1d3Sopenharmony_ci } 169fad3a1d3Sopenharmony_ci BinOp::Le(_) => { 170fad3a1d3Sopenharmony_ci state.write_u8(14u8); 171fad3a1d3Sopenharmony_ci } 172fad3a1d3Sopenharmony_ci BinOp::Ne(_) => { 173fad3a1d3Sopenharmony_ci state.write_u8(15u8); 174fad3a1d3Sopenharmony_ci } 175fad3a1d3Sopenharmony_ci BinOp::Ge(_) => { 176fad3a1d3Sopenharmony_ci state.write_u8(16u8); 177fad3a1d3Sopenharmony_ci } 178fad3a1d3Sopenharmony_ci BinOp::Gt(_) => { 179fad3a1d3Sopenharmony_ci state.write_u8(17u8); 180fad3a1d3Sopenharmony_ci } 181fad3a1d3Sopenharmony_ci BinOp::AddAssign(_) => { 182fad3a1d3Sopenharmony_ci state.write_u8(18u8); 183fad3a1d3Sopenharmony_ci } 184fad3a1d3Sopenharmony_ci BinOp::SubAssign(_) => { 185fad3a1d3Sopenharmony_ci state.write_u8(19u8); 186fad3a1d3Sopenharmony_ci } 187fad3a1d3Sopenharmony_ci BinOp::MulAssign(_) => { 188fad3a1d3Sopenharmony_ci state.write_u8(20u8); 189fad3a1d3Sopenharmony_ci } 190fad3a1d3Sopenharmony_ci BinOp::DivAssign(_) => { 191fad3a1d3Sopenharmony_ci state.write_u8(21u8); 192fad3a1d3Sopenharmony_ci } 193fad3a1d3Sopenharmony_ci BinOp::RemAssign(_) => { 194fad3a1d3Sopenharmony_ci state.write_u8(22u8); 195fad3a1d3Sopenharmony_ci } 196fad3a1d3Sopenharmony_ci BinOp::BitXorAssign(_) => { 197fad3a1d3Sopenharmony_ci state.write_u8(23u8); 198fad3a1d3Sopenharmony_ci } 199fad3a1d3Sopenharmony_ci BinOp::BitAndAssign(_) => { 200fad3a1d3Sopenharmony_ci state.write_u8(24u8); 201fad3a1d3Sopenharmony_ci } 202fad3a1d3Sopenharmony_ci BinOp::BitOrAssign(_) => { 203fad3a1d3Sopenharmony_ci state.write_u8(25u8); 204fad3a1d3Sopenharmony_ci } 205fad3a1d3Sopenharmony_ci BinOp::ShlAssign(_) => { 206fad3a1d3Sopenharmony_ci state.write_u8(26u8); 207fad3a1d3Sopenharmony_ci } 208fad3a1d3Sopenharmony_ci BinOp::ShrAssign(_) => { 209fad3a1d3Sopenharmony_ci state.write_u8(27u8); 210fad3a1d3Sopenharmony_ci } 211fad3a1d3Sopenharmony_ci } 212fad3a1d3Sopenharmony_ci } 213fad3a1d3Sopenharmony_ci} 214fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 215fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 216fad3a1d3Sopenharmony_ciimpl Hash for Block { 217fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 218fad3a1d3Sopenharmony_ci where 219fad3a1d3Sopenharmony_ci H: Hasher, 220fad3a1d3Sopenharmony_ci { 221fad3a1d3Sopenharmony_ci self.stmts.hash(state); 222fad3a1d3Sopenharmony_ci } 223fad3a1d3Sopenharmony_ci} 224fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 225fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 226fad3a1d3Sopenharmony_ciimpl Hash for BoundLifetimes { 227fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 228fad3a1d3Sopenharmony_ci where 229fad3a1d3Sopenharmony_ci H: Hasher, 230fad3a1d3Sopenharmony_ci { 231fad3a1d3Sopenharmony_ci self.lifetimes.hash(state); 232fad3a1d3Sopenharmony_ci } 233fad3a1d3Sopenharmony_ci} 234fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 235fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 236fad3a1d3Sopenharmony_ciimpl Hash for ConstParam { 237fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 238fad3a1d3Sopenharmony_ci where 239fad3a1d3Sopenharmony_ci H: Hasher, 240fad3a1d3Sopenharmony_ci { 241fad3a1d3Sopenharmony_ci self.attrs.hash(state); 242fad3a1d3Sopenharmony_ci self.ident.hash(state); 243fad3a1d3Sopenharmony_ci self.ty.hash(state); 244fad3a1d3Sopenharmony_ci self.eq_token.hash(state); 245fad3a1d3Sopenharmony_ci self.default.hash(state); 246fad3a1d3Sopenharmony_ci } 247fad3a1d3Sopenharmony_ci} 248fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 249fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 250fad3a1d3Sopenharmony_ciimpl Hash for Constraint { 251fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 252fad3a1d3Sopenharmony_ci where 253fad3a1d3Sopenharmony_ci H: Hasher, 254fad3a1d3Sopenharmony_ci { 255fad3a1d3Sopenharmony_ci self.ident.hash(state); 256fad3a1d3Sopenharmony_ci self.generics.hash(state); 257fad3a1d3Sopenharmony_ci self.bounds.hash(state); 258fad3a1d3Sopenharmony_ci } 259fad3a1d3Sopenharmony_ci} 260fad3a1d3Sopenharmony_ci#[cfg(feature = "derive")] 261fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 262fad3a1d3Sopenharmony_ciimpl Hash for Data { 263fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 264fad3a1d3Sopenharmony_ci where 265fad3a1d3Sopenharmony_ci H: Hasher, 266fad3a1d3Sopenharmony_ci { 267fad3a1d3Sopenharmony_ci match self { 268fad3a1d3Sopenharmony_ci Data::Struct(v0) => { 269fad3a1d3Sopenharmony_ci state.write_u8(0u8); 270fad3a1d3Sopenharmony_ci v0.hash(state); 271fad3a1d3Sopenharmony_ci } 272fad3a1d3Sopenharmony_ci Data::Enum(v0) => { 273fad3a1d3Sopenharmony_ci state.write_u8(1u8); 274fad3a1d3Sopenharmony_ci v0.hash(state); 275fad3a1d3Sopenharmony_ci } 276fad3a1d3Sopenharmony_ci Data::Union(v0) => { 277fad3a1d3Sopenharmony_ci state.write_u8(2u8); 278fad3a1d3Sopenharmony_ci v0.hash(state); 279fad3a1d3Sopenharmony_ci } 280fad3a1d3Sopenharmony_ci } 281fad3a1d3Sopenharmony_ci } 282fad3a1d3Sopenharmony_ci} 283fad3a1d3Sopenharmony_ci#[cfg(feature = "derive")] 284fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 285fad3a1d3Sopenharmony_ciimpl Hash for DataEnum { 286fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 287fad3a1d3Sopenharmony_ci where 288fad3a1d3Sopenharmony_ci H: Hasher, 289fad3a1d3Sopenharmony_ci { 290fad3a1d3Sopenharmony_ci self.variants.hash(state); 291fad3a1d3Sopenharmony_ci } 292fad3a1d3Sopenharmony_ci} 293fad3a1d3Sopenharmony_ci#[cfg(feature = "derive")] 294fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 295fad3a1d3Sopenharmony_ciimpl Hash for DataStruct { 296fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 297fad3a1d3Sopenharmony_ci where 298fad3a1d3Sopenharmony_ci H: Hasher, 299fad3a1d3Sopenharmony_ci { 300fad3a1d3Sopenharmony_ci self.fields.hash(state); 301fad3a1d3Sopenharmony_ci self.semi_token.hash(state); 302fad3a1d3Sopenharmony_ci } 303fad3a1d3Sopenharmony_ci} 304fad3a1d3Sopenharmony_ci#[cfg(feature = "derive")] 305fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 306fad3a1d3Sopenharmony_ciimpl Hash for DataUnion { 307fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 308fad3a1d3Sopenharmony_ci where 309fad3a1d3Sopenharmony_ci H: Hasher, 310fad3a1d3Sopenharmony_ci { 311fad3a1d3Sopenharmony_ci self.fields.hash(state); 312fad3a1d3Sopenharmony_ci } 313fad3a1d3Sopenharmony_ci} 314fad3a1d3Sopenharmony_ci#[cfg(feature = "derive")] 315fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 316fad3a1d3Sopenharmony_ciimpl Hash for DeriveInput { 317fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 318fad3a1d3Sopenharmony_ci where 319fad3a1d3Sopenharmony_ci H: Hasher, 320fad3a1d3Sopenharmony_ci { 321fad3a1d3Sopenharmony_ci self.attrs.hash(state); 322fad3a1d3Sopenharmony_ci self.vis.hash(state); 323fad3a1d3Sopenharmony_ci self.ident.hash(state); 324fad3a1d3Sopenharmony_ci self.generics.hash(state); 325fad3a1d3Sopenharmony_ci self.data.hash(state); 326fad3a1d3Sopenharmony_ci } 327fad3a1d3Sopenharmony_ci} 328fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 329fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 330fad3a1d3Sopenharmony_ciimpl Hash for Expr { 331fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 332fad3a1d3Sopenharmony_ci where 333fad3a1d3Sopenharmony_ci H: Hasher, 334fad3a1d3Sopenharmony_ci { 335fad3a1d3Sopenharmony_ci match self { 336fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 337fad3a1d3Sopenharmony_ci Expr::Array(v0) => { 338fad3a1d3Sopenharmony_ci state.write_u8(0u8); 339fad3a1d3Sopenharmony_ci v0.hash(state); 340fad3a1d3Sopenharmony_ci } 341fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 342fad3a1d3Sopenharmony_ci Expr::Assign(v0) => { 343fad3a1d3Sopenharmony_ci state.write_u8(1u8); 344fad3a1d3Sopenharmony_ci v0.hash(state); 345fad3a1d3Sopenharmony_ci } 346fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 347fad3a1d3Sopenharmony_ci Expr::Async(v0) => { 348fad3a1d3Sopenharmony_ci state.write_u8(2u8); 349fad3a1d3Sopenharmony_ci v0.hash(state); 350fad3a1d3Sopenharmony_ci } 351fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 352fad3a1d3Sopenharmony_ci Expr::Await(v0) => { 353fad3a1d3Sopenharmony_ci state.write_u8(3u8); 354fad3a1d3Sopenharmony_ci v0.hash(state); 355fad3a1d3Sopenharmony_ci } 356fad3a1d3Sopenharmony_ci Expr::Binary(v0) => { 357fad3a1d3Sopenharmony_ci state.write_u8(4u8); 358fad3a1d3Sopenharmony_ci v0.hash(state); 359fad3a1d3Sopenharmony_ci } 360fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 361fad3a1d3Sopenharmony_ci Expr::Block(v0) => { 362fad3a1d3Sopenharmony_ci state.write_u8(5u8); 363fad3a1d3Sopenharmony_ci v0.hash(state); 364fad3a1d3Sopenharmony_ci } 365fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 366fad3a1d3Sopenharmony_ci Expr::Break(v0) => { 367fad3a1d3Sopenharmony_ci state.write_u8(6u8); 368fad3a1d3Sopenharmony_ci v0.hash(state); 369fad3a1d3Sopenharmony_ci } 370fad3a1d3Sopenharmony_ci Expr::Call(v0) => { 371fad3a1d3Sopenharmony_ci state.write_u8(7u8); 372fad3a1d3Sopenharmony_ci v0.hash(state); 373fad3a1d3Sopenharmony_ci } 374fad3a1d3Sopenharmony_ci Expr::Cast(v0) => { 375fad3a1d3Sopenharmony_ci state.write_u8(8u8); 376fad3a1d3Sopenharmony_ci v0.hash(state); 377fad3a1d3Sopenharmony_ci } 378fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 379fad3a1d3Sopenharmony_ci Expr::Closure(v0) => { 380fad3a1d3Sopenharmony_ci state.write_u8(9u8); 381fad3a1d3Sopenharmony_ci v0.hash(state); 382fad3a1d3Sopenharmony_ci } 383fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 384fad3a1d3Sopenharmony_ci Expr::Const(v0) => { 385fad3a1d3Sopenharmony_ci state.write_u8(10u8); 386fad3a1d3Sopenharmony_ci v0.hash(state); 387fad3a1d3Sopenharmony_ci } 388fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 389fad3a1d3Sopenharmony_ci Expr::Continue(v0) => { 390fad3a1d3Sopenharmony_ci state.write_u8(11u8); 391fad3a1d3Sopenharmony_ci v0.hash(state); 392fad3a1d3Sopenharmony_ci } 393fad3a1d3Sopenharmony_ci Expr::Field(v0) => { 394fad3a1d3Sopenharmony_ci state.write_u8(12u8); 395fad3a1d3Sopenharmony_ci v0.hash(state); 396fad3a1d3Sopenharmony_ci } 397fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 398fad3a1d3Sopenharmony_ci Expr::ForLoop(v0) => { 399fad3a1d3Sopenharmony_ci state.write_u8(13u8); 400fad3a1d3Sopenharmony_ci v0.hash(state); 401fad3a1d3Sopenharmony_ci } 402fad3a1d3Sopenharmony_ci Expr::Group(v0) => { 403fad3a1d3Sopenharmony_ci state.write_u8(14u8); 404fad3a1d3Sopenharmony_ci v0.hash(state); 405fad3a1d3Sopenharmony_ci } 406fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 407fad3a1d3Sopenharmony_ci Expr::If(v0) => { 408fad3a1d3Sopenharmony_ci state.write_u8(15u8); 409fad3a1d3Sopenharmony_ci v0.hash(state); 410fad3a1d3Sopenharmony_ci } 411fad3a1d3Sopenharmony_ci Expr::Index(v0) => { 412fad3a1d3Sopenharmony_ci state.write_u8(16u8); 413fad3a1d3Sopenharmony_ci v0.hash(state); 414fad3a1d3Sopenharmony_ci } 415fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 416fad3a1d3Sopenharmony_ci Expr::Infer(v0) => { 417fad3a1d3Sopenharmony_ci state.write_u8(17u8); 418fad3a1d3Sopenharmony_ci v0.hash(state); 419fad3a1d3Sopenharmony_ci } 420fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 421fad3a1d3Sopenharmony_ci Expr::Let(v0) => { 422fad3a1d3Sopenharmony_ci state.write_u8(18u8); 423fad3a1d3Sopenharmony_ci v0.hash(state); 424fad3a1d3Sopenharmony_ci } 425fad3a1d3Sopenharmony_ci Expr::Lit(v0) => { 426fad3a1d3Sopenharmony_ci state.write_u8(19u8); 427fad3a1d3Sopenharmony_ci v0.hash(state); 428fad3a1d3Sopenharmony_ci } 429fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 430fad3a1d3Sopenharmony_ci Expr::Loop(v0) => { 431fad3a1d3Sopenharmony_ci state.write_u8(20u8); 432fad3a1d3Sopenharmony_ci v0.hash(state); 433fad3a1d3Sopenharmony_ci } 434fad3a1d3Sopenharmony_ci Expr::Macro(v0) => { 435fad3a1d3Sopenharmony_ci state.write_u8(21u8); 436fad3a1d3Sopenharmony_ci v0.hash(state); 437fad3a1d3Sopenharmony_ci } 438fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 439fad3a1d3Sopenharmony_ci Expr::Match(v0) => { 440fad3a1d3Sopenharmony_ci state.write_u8(22u8); 441fad3a1d3Sopenharmony_ci v0.hash(state); 442fad3a1d3Sopenharmony_ci } 443fad3a1d3Sopenharmony_ci Expr::MethodCall(v0) => { 444fad3a1d3Sopenharmony_ci state.write_u8(23u8); 445fad3a1d3Sopenharmony_ci v0.hash(state); 446fad3a1d3Sopenharmony_ci } 447fad3a1d3Sopenharmony_ci Expr::Paren(v0) => { 448fad3a1d3Sopenharmony_ci state.write_u8(24u8); 449fad3a1d3Sopenharmony_ci v0.hash(state); 450fad3a1d3Sopenharmony_ci } 451fad3a1d3Sopenharmony_ci Expr::Path(v0) => { 452fad3a1d3Sopenharmony_ci state.write_u8(25u8); 453fad3a1d3Sopenharmony_ci v0.hash(state); 454fad3a1d3Sopenharmony_ci } 455fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 456fad3a1d3Sopenharmony_ci Expr::Range(v0) => { 457fad3a1d3Sopenharmony_ci state.write_u8(26u8); 458fad3a1d3Sopenharmony_ci v0.hash(state); 459fad3a1d3Sopenharmony_ci } 460fad3a1d3Sopenharmony_ci Expr::Reference(v0) => { 461fad3a1d3Sopenharmony_ci state.write_u8(27u8); 462fad3a1d3Sopenharmony_ci v0.hash(state); 463fad3a1d3Sopenharmony_ci } 464fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 465fad3a1d3Sopenharmony_ci Expr::Repeat(v0) => { 466fad3a1d3Sopenharmony_ci state.write_u8(28u8); 467fad3a1d3Sopenharmony_ci v0.hash(state); 468fad3a1d3Sopenharmony_ci } 469fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 470fad3a1d3Sopenharmony_ci Expr::Return(v0) => { 471fad3a1d3Sopenharmony_ci state.write_u8(29u8); 472fad3a1d3Sopenharmony_ci v0.hash(state); 473fad3a1d3Sopenharmony_ci } 474fad3a1d3Sopenharmony_ci Expr::Struct(v0) => { 475fad3a1d3Sopenharmony_ci state.write_u8(30u8); 476fad3a1d3Sopenharmony_ci v0.hash(state); 477fad3a1d3Sopenharmony_ci } 478fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 479fad3a1d3Sopenharmony_ci Expr::Try(v0) => { 480fad3a1d3Sopenharmony_ci state.write_u8(31u8); 481fad3a1d3Sopenharmony_ci v0.hash(state); 482fad3a1d3Sopenharmony_ci } 483fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 484fad3a1d3Sopenharmony_ci Expr::TryBlock(v0) => { 485fad3a1d3Sopenharmony_ci state.write_u8(32u8); 486fad3a1d3Sopenharmony_ci v0.hash(state); 487fad3a1d3Sopenharmony_ci } 488fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 489fad3a1d3Sopenharmony_ci Expr::Tuple(v0) => { 490fad3a1d3Sopenharmony_ci state.write_u8(33u8); 491fad3a1d3Sopenharmony_ci v0.hash(state); 492fad3a1d3Sopenharmony_ci } 493fad3a1d3Sopenharmony_ci Expr::Unary(v0) => { 494fad3a1d3Sopenharmony_ci state.write_u8(34u8); 495fad3a1d3Sopenharmony_ci v0.hash(state); 496fad3a1d3Sopenharmony_ci } 497fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 498fad3a1d3Sopenharmony_ci Expr::Unsafe(v0) => { 499fad3a1d3Sopenharmony_ci state.write_u8(35u8); 500fad3a1d3Sopenharmony_ci v0.hash(state); 501fad3a1d3Sopenharmony_ci } 502fad3a1d3Sopenharmony_ci Expr::Verbatim(v0) => { 503fad3a1d3Sopenharmony_ci state.write_u8(36u8); 504fad3a1d3Sopenharmony_ci TokenStreamHelper(v0).hash(state); 505fad3a1d3Sopenharmony_ci } 506fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 507fad3a1d3Sopenharmony_ci Expr::While(v0) => { 508fad3a1d3Sopenharmony_ci state.write_u8(37u8); 509fad3a1d3Sopenharmony_ci v0.hash(state); 510fad3a1d3Sopenharmony_ci } 511fad3a1d3Sopenharmony_ci #[cfg(feature = "full")] 512fad3a1d3Sopenharmony_ci Expr::Yield(v0) => { 513fad3a1d3Sopenharmony_ci state.write_u8(38u8); 514fad3a1d3Sopenharmony_ci v0.hash(state); 515fad3a1d3Sopenharmony_ci } 516fad3a1d3Sopenharmony_ci #[cfg(not(feature = "full"))] 517fad3a1d3Sopenharmony_ci _ => unreachable!(), 518fad3a1d3Sopenharmony_ci } 519fad3a1d3Sopenharmony_ci } 520fad3a1d3Sopenharmony_ci} 521fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 522fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 523fad3a1d3Sopenharmony_ciimpl Hash for ExprArray { 524fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 525fad3a1d3Sopenharmony_ci where 526fad3a1d3Sopenharmony_ci H: Hasher, 527fad3a1d3Sopenharmony_ci { 528fad3a1d3Sopenharmony_ci self.attrs.hash(state); 529fad3a1d3Sopenharmony_ci self.elems.hash(state); 530fad3a1d3Sopenharmony_ci } 531fad3a1d3Sopenharmony_ci} 532fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 533fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 534fad3a1d3Sopenharmony_ciimpl Hash for ExprAssign { 535fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 536fad3a1d3Sopenharmony_ci where 537fad3a1d3Sopenharmony_ci H: Hasher, 538fad3a1d3Sopenharmony_ci { 539fad3a1d3Sopenharmony_ci self.attrs.hash(state); 540fad3a1d3Sopenharmony_ci self.left.hash(state); 541fad3a1d3Sopenharmony_ci self.right.hash(state); 542fad3a1d3Sopenharmony_ci } 543fad3a1d3Sopenharmony_ci} 544fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 545fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 546fad3a1d3Sopenharmony_ciimpl Hash for ExprAsync { 547fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 548fad3a1d3Sopenharmony_ci where 549fad3a1d3Sopenharmony_ci H: Hasher, 550fad3a1d3Sopenharmony_ci { 551fad3a1d3Sopenharmony_ci self.attrs.hash(state); 552fad3a1d3Sopenharmony_ci self.capture.hash(state); 553fad3a1d3Sopenharmony_ci self.block.hash(state); 554fad3a1d3Sopenharmony_ci } 555fad3a1d3Sopenharmony_ci} 556fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 557fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 558fad3a1d3Sopenharmony_ciimpl Hash for ExprAwait { 559fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 560fad3a1d3Sopenharmony_ci where 561fad3a1d3Sopenharmony_ci H: Hasher, 562fad3a1d3Sopenharmony_ci { 563fad3a1d3Sopenharmony_ci self.attrs.hash(state); 564fad3a1d3Sopenharmony_ci self.base.hash(state); 565fad3a1d3Sopenharmony_ci } 566fad3a1d3Sopenharmony_ci} 567fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 568fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 569fad3a1d3Sopenharmony_ciimpl Hash for ExprBinary { 570fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 571fad3a1d3Sopenharmony_ci where 572fad3a1d3Sopenharmony_ci H: Hasher, 573fad3a1d3Sopenharmony_ci { 574fad3a1d3Sopenharmony_ci self.attrs.hash(state); 575fad3a1d3Sopenharmony_ci self.left.hash(state); 576fad3a1d3Sopenharmony_ci self.op.hash(state); 577fad3a1d3Sopenharmony_ci self.right.hash(state); 578fad3a1d3Sopenharmony_ci } 579fad3a1d3Sopenharmony_ci} 580fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 581fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 582fad3a1d3Sopenharmony_ciimpl Hash for ExprBlock { 583fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 584fad3a1d3Sopenharmony_ci where 585fad3a1d3Sopenharmony_ci H: Hasher, 586fad3a1d3Sopenharmony_ci { 587fad3a1d3Sopenharmony_ci self.attrs.hash(state); 588fad3a1d3Sopenharmony_ci self.label.hash(state); 589fad3a1d3Sopenharmony_ci self.block.hash(state); 590fad3a1d3Sopenharmony_ci } 591fad3a1d3Sopenharmony_ci} 592fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 593fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 594fad3a1d3Sopenharmony_ciimpl Hash for ExprBreak { 595fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 596fad3a1d3Sopenharmony_ci where 597fad3a1d3Sopenharmony_ci H: Hasher, 598fad3a1d3Sopenharmony_ci { 599fad3a1d3Sopenharmony_ci self.attrs.hash(state); 600fad3a1d3Sopenharmony_ci self.label.hash(state); 601fad3a1d3Sopenharmony_ci self.expr.hash(state); 602fad3a1d3Sopenharmony_ci } 603fad3a1d3Sopenharmony_ci} 604fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 605fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 606fad3a1d3Sopenharmony_ciimpl Hash for ExprCall { 607fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 608fad3a1d3Sopenharmony_ci where 609fad3a1d3Sopenharmony_ci H: Hasher, 610fad3a1d3Sopenharmony_ci { 611fad3a1d3Sopenharmony_ci self.attrs.hash(state); 612fad3a1d3Sopenharmony_ci self.func.hash(state); 613fad3a1d3Sopenharmony_ci self.args.hash(state); 614fad3a1d3Sopenharmony_ci } 615fad3a1d3Sopenharmony_ci} 616fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 617fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 618fad3a1d3Sopenharmony_ciimpl Hash for ExprCast { 619fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 620fad3a1d3Sopenharmony_ci where 621fad3a1d3Sopenharmony_ci H: Hasher, 622fad3a1d3Sopenharmony_ci { 623fad3a1d3Sopenharmony_ci self.attrs.hash(state); 624fad3a1d3Sopenharmony_ci self.expr.hash(state); 625fad3a1d3Sopenharmony_ci self.ty.hash(state); 626fad3a1d3Sopenharmony_ci } 627fad3a1d3Sopenharmony_ci} 628fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 629fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 630fad3a1d3Sopenharmony_ciimpl Hash for ExprClosure { 631fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 632fad3a1d3Sopenharmony_ci where 633fad3a1d3Sopenharmony_ci H: Hasher, 634fad3a1d3Sopenharmony_ci { 635fad3a1d3Sopenharmony_ci self.attrs.hash(state); 636fad3a1d3Sopenharmony_ci self.lifetimes.hash(state); 637fad3a1d3Sopenharmony_ci self.constness.hash(state); 638fad3a1d3Sopenharmony_ci self.movability.hash(state); 639fad3a1d3Sopenharmony_ci self.asyncness.hash(state); 640fad3a1d3Sopenharmony_ci self.capture.hash(state); 641fad3a1d3Sopenharmony_ci self.inputs.hash(state); 642fad3a1d3Sopenharmony_ci self.output.hash(state); 643fad3a1d3Sopenharmony_ci self.body.hash(state); 644fad3a1d3Sopenharmony_ci } 645fad3a1d3Sopenharmony_ci} 646fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 647fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 648fad3a1d3Sopenharmony_ciimpl Hash for ExprConst { 649fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 650fad3a1d3Sopenharmony_ci where 651fad3a1d3Sopenharmony_ci H: Hasher, 652fad3a1d3Sopenharmony_ci { 653fad3a1d3Sopenharmony_ci self.attrs.hash(state); 654fad3a1d3Sopenharmony_ci self.block.hash(state); 655fad3a1d3Sopenharmony_ci } 656fad3a1d3Sopenharmony_ci} 657fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 658fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 659fad3a1d3Sopenharmony_ciimpl Hash for ExprContinue { 660fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 661fad3a1d3Sopenharmony_ci where 662fad3a1d3Sopenharmony_ci H: Hasher, 663fad3a1d3Sopenharmony_ci { 664fad3a1d3Sopenharmony_ci self.attrs.hash(state); 665fad3a1d3Sopenharmony_ci self.label.hash(state); 666fad3a1d3Sopenharmony_ci } 667fad3a1d3Sopenharmony_ci} 668fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 669fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 670fad3a1d3Sopenharmony_ciimpl Hash for ExprField { 671fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 672fad3a1d3Sopenharmony_ci where 673fad3a1d3Sopenharmony_ci H: Hasher, 674fad3a1d3Sopenharmony_ci { 675fad3a1d3Sopenharmony_ci self.attrs.hash(state); 676fad3a1d3Sopenharmony_ci self.base.hash(state); 677fad3a1d3Sopenharmony_ci self.member.hash(state); 678fad3a1d3Sopenharmony_ci } 679fad3a1d3Sopenharmony_ci} 680fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 681fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 682fad3a1d3Sopenharmony_ciimpl Hash for ExprForLoop { 683fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 684fad3a1d3Sopenharmony_ci where 685fad3a1d3Sopenharmony_ci H: Hasher, 686fad3a1d3Sopenharmony_ci { 687fad3a1d3Sopenharmony_ci self.attrs.hash(state); 688fad3a1d3Sopenharmony_ci self.label.hash(state); 689fad3a1d3Sopenharmony_ci self.pat.hash(state); 690fad3a1d3Sopenharmony_ci self.expr.hash(state); 691fad3a1d3Sopenharmony_ci self.body.hash(state); 692fad3a1d3Sopenharmony_ci } 693fad3a1d3Sopenharmony_ci} 694fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 695fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 696fad3a1d3Sopenharmony_ciimpl Hash for ExprGroup { 697fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 698fad3a1d3Sopenharmony_ci where 699fad3a1d3Sopenharmony_ci H: Hasher, 700fad3a1d3Sopenharmony_ci { 701fad3a1d3Sopenharmony_ci self.attrs.hash(state); 702fad3a1d3Sopenharmony_ci self.expr.hash(state); 703fad3a1d3Sopenharmony_ci } 704fad3a1d3Sopenharmony_ci} 705fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 706fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 707fad3a1d3Sopenharmony_ciimpl Hash for ExprIf { 708fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 709fad3a1d3Sopenharmony_ci where 710fad3a1d3Sopenharmony_ci H: Hasher, 711fad3a1d3Sopenharmony_ci { 712fad3a1d3Sopenharmony_ci self.attrs.hash(state); 713fad3a1d3Sopenharmony_ci self.cond.hash(state); 714fad3a1d3Sopenharmony_ci self.then_branch.hash(state); 715fad3a1d3Sopenharmony_ci self.else_branch.hash(state); 716fad3a1d3Sopenharmony_ci } 717fad3a1d3Sopenharmony_ci} 718fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 719fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 720fad3a1d3Sopenharmony_ciimpl Hash for ExprIndex { 721fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 722fad3a1d3Sopenharmony_ci where 723fad3a1d3Sopenharmony_ci H: Hasher, 724fad3a1d3Sopenharmony_ci { 725fad3a1d3Sopenharmony_ci self.attrs.hash(state); 726fad3a1d3Sopenharmony_ci self.expr.hash(state); 727fad3a1d3Sopenharmony_ci self.index.hash(state); 728fad3a1d3Sopenharmony_ci } 729fad3a1d3Sopenharmony_ci} 730fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 731fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 732fad3a1d3Sopenharmony_ciimpl Hash for ExprInfer { 733fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 734fad3a1d3Sopenharmony_ci where 735fad3a1d3Sopenharmony_ci H: Hasher, 736fad3a1d3Sopenharmony_ci { 737fad3a1d3Sopenharmony_ci self.attrs.hash(state); 738fad3a1d3Sopenharmony_ci } 739fad3a1d3Sopenharmony_ci} 740fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 741fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 742fad3a1d3Sopenharmony_ciimpl Hash for ExprLet { 743fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 744fad3a1d3Sopenharmony_ci where 745fad3a1d3Sopenharmony_ci H: Hasher, 746fad3a1d3Sopenharmony_ci { 747fad3a1d3Sopenharmony_ci self.attrs.hash(state); 748fad3a1d3Sopenharmony_ci self.pat.hash(state); 749fad3a1d3Sopenharmony_ci self.expr.hash(state); 750fad3a1d3Sopenharmony_ci } 751fad3a1d3Sopenharmony_ci} 752fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 753fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 754fad3a1d3Sopenharmony_ciimpl Hash for ExprLit { 755fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 756fad3a1d3Sopenharmony_ci where 757fad3a1d3Sopenharmony_ci H: Hasher, 758fad3a1d3Sopenharmony_ci { 759fad3a1d3Sopenharmony_ci self.attrs.hash(state); 760fad3a1d3Sopenharmony_ci self.lit.hash(state); 761fad3a1d3Sopenharmony_ci } 762fad3a1d3Sopenharmony_ci} 763fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 764fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 765fad3a1d3Sopenharmony_ciimpl Hash for ExprLoop { 766fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 767fad3a1d3Sopenharmony_ci where 768fad3a1d3Sopenharmony_ci H: Hasher, 769fad3a1d3Sopenharmony_ci { 770fad3a1d3Sopenharmony_ci self.attrs.hash(state); 771fad3a1d3Sopenharmony_ci self.label.hash(state); 772fad3a1d3Sopenharmony_ci self.body.hash(state); 773fad3a1d3Sopenharmony_ci } 774fad3a1d3Sopenharmony_ci} 775fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 776fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 777fad3a1d3Sopenharmony_ciimpl Hash for ExprMacro { 778fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 779fad3a1d3Sopenharmony_ci where 780fad3a1d3Sopenharmony_ci H: Hasher, 781fad3a1d3Sopenharmony_ci { 782fad3a1d3Sopenharmony_ci self.attrs.hash(state); 783fad3a1d3Sopenharmony_ci self.mac.hash(state); 784fad3a1d3Sopenharmony_ci } 785fad3a1d3Sopenharmony_ci} 786fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 787fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 788fad3a1d3Sopenharmony_ciimpl Hash for ExprMatch { 789fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 790fad3a1d3Sopenharmony_ci where 791fad3a1d3Sopenharmony_ci H: Hasher, 792fad3a1d3Sopenharmony_ci { 793fad3a1d3Sopenharmony_ci self.attrs.hash(state); 794fad3a1d3Sopenharmony_ci self.expr.hash(state); 795fad3a1d3Sopenharmony_ci self.arms.hash(state); 796fad3a1d3Sopenharmony_ci } 797fad3a1d3Sopenharmony_ci} 798fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 799fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 800fad3a1d3Sopenharmony_ciimpl Hash for ExprMethodCall { 801fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 802fad3a1d3Sopenharmony_ci where 803fad3a1d3Sopenharmony_ci H: Hasher, 804fad3a1d3Sopenharmony_ci { 805fad3a1d3Sopenharmony_ci self.attrs.hash(state); 806fad3a1d3Sopenharmony_ci self.receiver.hash(state); 807fad3a1d3Sopenharmony_ci self.method.hash(state); 808fad3a1d3Sopenharmony_ci self.turbofish.hash(state); 809fad3a1d3Sopenharmony_ci self.args.hash(state); 810fad3a1d3Sopenharmony_ci } 811fad3a1d3Sopenharmony_ci} 812fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 813fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 814fad3a1d3Sopenharmony_ciimpl Hash for ExprParen { 815fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 816fad3a1d3Sopenharmony_ci where 817fad3a1d3Sopenharmony_ci H: Hasher, 818fad3a1d3Sopenharmony_ci { 819fad3a1d3Sopenharmony_ci self.attrs.hash(state); 820fad3a1d3Sopenharmony_ci self.expr.hash(state); 821fad3a1d3Sopenharmony_ci } 822fad3a1d3Sopenharmony_ci} 823fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 824fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 825fad3a1d3Sopenharmony_ciimpl Hash for ExprPath { 826fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 827fad3a1d3Sopenharmony_ci where 828fad3a1d3Sopenharmony_ci H: Hasher, 829fad3a1d3Sopenharmony_ci { 830fad3a1d3Sopenharmony_ci self.attrs.hash(state); 831fad3a1d3Sopenharmony_ci self.qself.hash(state); 832fad3a1d3Sopenharmony_ci self.path.hash(state); 833fad3a1d3Sopenharmony_ci } 834fad3a1d3Sopenharmony_ci} 835fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 836fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 837fad3a1d3Sopenharmony_ciimpl Hash for ExprRange { 838fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 839fad3a1d3Sopenharmony_ci where 840fad3a1d3Sopenharmony_ci H: Hasher, 841fad3a1d3Sopenharmony_ci { 842fad3a1d3Sopenharmony_ci self.attrs.hash(state); 843fad3a1d3Sopenharmony_ci self.start.hash(state); 844fad3a1d3Sopenharmony_ci self.limits.hash(state); 845fad3a1d3Sopenharmony_ci self.end.hash(state); 846fad3a1d3Sopenharmony_ci } 847fad3a1d3Sopenharmony_ci} 848fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 849fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 850fad3a1d3Sopenharmony_ciimpl Hash for ExprReference { 851fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 852fad3a1d3Sopenharmony_ci where 853fad3a1d3Sopenharmony_ci H: Hasher, 854fad3a1d3Sopenharmony_ci { 855fad3a1d3Sopenharmony_ci self.attrs.hash(state); 856fad3a1d3Sopenharmony_ci self.mutability.hash(state); 857fad3a1d3Sopenharmony_ci self.expr.hash(state); 858fad3a1d3Sopenharmony_ci } 859fad3a1d3Sopenharmony_ci} 860fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 861fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 862fad3a1d3Sopenharmony_ciimpl Hash for ExprRepeat { 863fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 864fad3a1d3Sopenharmony_ci where 865fad3a1d3Sopenharmony_ci H: Hasher, 866fad3a1d3Sopenharmony_ci { 867fad3a1d3Sopenharmony_ci self.attrs.hash(state); 868fad3a1d3Sopenharmony_ci self.expr.hash(state); 869fad3a1d3Sopenharmony_ci self.len.hash(state); 870fad3a1d3Sopenharmony_ci } 871fad3a1d3Sopenharmony_ci} 872fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 873fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 874fad3a1d3Sopenharmony_ciimpl Hash for ExprReturn { 875fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 876fad3a1d3Sopenharmony_ci where 877fad3a1d3Sopenharmony_ci H: Hasher, 878fad3a1d3Sopenharmony_ci { 879fad3a1d3Sopenharmony_ci self.attrs.hash(state); 880fad3a1d3Sopenharmony_ci self.expr.hash(state); 881fad3a1d3Sopenharmony_ci } 882fad3a1d3Sopenharmony_ci} 883fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 884fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 885fad3a1d3Sopenharmony_ciimpl Hash for ExprStruct { 886fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 887fad3a1d3Sopenharmony_ci where 888fad3a1d3Sopenharmony_ci H: Hasher, 889fad3a1d3Sopenharmony_ci { 890fad3a1d3Sopenharmony_ci self.attrs.hash(state); 891fad3a1d3Sopenharmony_ci self.qself.hash(state); 892fad3a1d3Sopenharmony_ci self.path.hash(state); 893fad3a1d3Sopenharmony_ci self.fields.hash(state); 894fad3a1d3Sopenharmony_ci self.dot2_token.hash(state); 895fad3a1d3Sopenharmony_ci self.rest.hash(state); 896fad3a1d3Sopenharmony_ci } 897fad3a1d3Sopenharmony_ci} 898fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 899fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 900fad3a1d3Sopenharmony_ciimpl Hash for ExprTry { 901fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 902fad3a1d3Sopenharmony_ci where 903fad3a1d3Sopenharmony_ci H: Hasher, 904fad3a1d3Sopenharmony_ci { 905fad3a1d3Sopenharmony_ci self.attrs.hash(state); 906fad3a1d3Sopenharmony_ci self.expr.hash(state); 907fad3a1d3Sopenharmony_ci } 908fad3a1d3Sopenharmony_ci} 909fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 910fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 911fad3a1d3Sopenharmony_ciimpl Hash for ExprTryBlock { 912fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 913fad3a1d3Sopenharmony_ci where 914fad3a1d3Sopenharmony_ci H: Hasher, 915fad3a1d3Sopenharmony_ci { 916fad3a1d3Sopenharmony_ci self.attrs.hash(state); 917fad3a1d3Sopenharmony_ci self.block.hash(state); 918fad3a1d3Sopenharmony_ci } 919fad3a1d3Sopenharmony_ci} 920fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 921fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 922fad3a1d3Sopenharmony_ciimpl Hash for ExprTuple { 923fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 924fad3a1d3Sopenharmony_ci where 925fad3a1d3Sopenharmony_ci H: Hasher, 926fad3a1d3Sopenharmony_ci { 927fad3a1d3Sopenharmony_ci self.attrs.hash(state); 928fad3a1d3Sopenharmony_ci self.elems.hash(state); 929fad3a1d3Sopenharmony_ci } 930fad3a1d3Sopenharmony_ci} 931fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 932fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 933fad3a1d3Sopenharmony_ciimpl Hash for ExprUnary { 934fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 935fad3a1d3Sopenharmony_ci where 936fad3a1d3Sopenharmony_ci H: Hasher, 937fad3a1d3Sopenharmony_ci { 938fad3a1d3Sopenharmony_ci self.attrs.hash(state); 939fad3a1d3Sopenharmony_ci self.op.hash(state); 940fad3a1d3Sopenharmony_ci self.expr.hash(state); 941fad3a1d3Sopenharmony_ci } 942fad3a1d3Sopenharmony_ci} 943fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 944fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 945fad3a1d3Sopenharmony_ciimpl Hash for ExprUnsafe { 946fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 947fad3a1d3Sopenharmony_ci where 948fad3a1d3Sopenharmony_ci H: Hasher, 949fad3a1d3Sopenharmony_ci { 950fad3a1d3Sopenharmony_ci self.attrs.hash(state); 951fad3a1d3Sopenharmony_ci self.block.hash(state); 952fad3a1d3Sopenharmony_ci } 953fad3a1d3Sopenharmony_ci} 954fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 955fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 956fad3a1d3Sopenharmony_ciimpl Hash for ExprWhile { 957fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 958fad3a1d3Sopenharmony_ci where 959fad3a1d3Sopenharmony_ci H: Hasher, 960fad3a1d3Sopenharmony_ci { 961fad3a1d3Sopenharmony_ci self.attrs.hash(state); 962fad3a1d3Sopenharmony_ci self.label.hash(state); 963fad3a1d3Sopenharmony_ci self.cond.hash(state); 964fad3a1d3Sopenharmony_ci self.body.hash(state); 965fad3a1d3Sopenharmony_ci } 966fad3a1d3Sopenharmony_ci} 967fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 968fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 969fad3a1d3Sopenharmony_ciimpl Hash for ExprYield { 970fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 971fad3a1d3Sopenharmony_ci where 972fad3a1d3Sopenharmony_ci H: Hasher, 973fad3a1d3Sopenharmony_ci { 974fad3a1d3Sopenharmony_ci self.attrs.hash(state); 975fad3a1d3Sopenharmony_ci self.expr.hash(state); 976fad3a1d3Sopenharmony_ci } 977fad3a1d3Sopenharmony_ci} 978fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 979fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 980fad3a1d3Sopenharmony_ciimpl Hash for Field { 981fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 982fad3a1d3Sopenharmony_ci where 983fad3a1d3Sopenharmony_ci H: Hasher, 984fad3a1d3Sopenharmony_ci { 985fad3a1d3Sopenharmony_ci self.attrs.hash(state); 986fad3a1d3Sopenharmony_ci self.vis.hash(state); 987fad3a1d3Sopenharmony_ci self.mutability.hash(state); 988fad3a1d3Sopenharmony_ci self.ident.hash(state); 989fad3a1d3Sopenharmony_ci self.colon_token.hash(state); 990fad3a1d3Sopenharmony_ci self.ty.hash(state); 991fad3a1d3Sopenharmony_ci } 992fad3a1d3Sopenharmony_ci} 993fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 994fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 995fad3a1d3Sopenharmony_ciimpl Hash for FieldMutability { 996fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 997fad3a1d3Sopenharmony_ci where 998fad3a1d3Sopenharmony_ci H: Hasher, 999fad3a1d3Sopenharmony_ci { 1000fad3a1d3Sopenharmony_ci match self { 1001fad3a1d3Sopenharmony_ci FieldMutability::None => { 1002fad3a1d3Sopenharmony_ci state.write_u8(0u8); 1003fad3a1d3Sopenharmony_ci } 1004fad3a1d3Sopenharmony_ci } 1005fad3a1d3Sopenharmony_ci } 1006fad3a1d3Sopenharmony_ci} 1007fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1008fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1009fad3a1d3Sopenharmony_ciimpl Hash for FieldPat { 1010fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1011fad3a1d3Sopenharmony_ci where 1012fad3a1d3Sopenharmony_ci H: Hasher, 1013fad3a1d3Sopenharmony_ci { 1014fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1015fad3a1d3Sopenharmony_ci self.member.hash(state); 1016fad3a1d3Sopenharmony_ci self.colon_token.hash(state); 1017fad3a1d3Sopenharmony_ci self.pat.hash(state); 1018fad3a1d3Sopenharmony_ci } 1019fad3a1d3Sopenharmony_ci} 1020fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 1021fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1022fad3a1d3Sopenharmony_ciimpl Hash for FieldValue { 1023fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1024fad3a1d3Sopenharmony_ci where 1025fad3a1d3Sopenharmony_ci H: Hasher, 1026fad3a1d3Sopenharmony_ci { 1027fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1028fad3a1d3Sopenharmony_ci self.member.hash(state); 1029fad3a1d3Sopenharmony_ci self.colon_token.hash(state); 1030fad3a1d3Sopenharmony_ci self.expr.hash(state); 1031fad3a1d3Sopenharmony_ci } 1032fad3a1d3Sopenharmony_ci} 1033fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 1034fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1035fad3a1d3Sopenharmony_ciimpl Hash for Fields { 1036fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1037fad3a1d3Sopenharmony_ci where 1038fad3a1d3Sopenharmony_ci H: Hasher, 1039fad3a1d3Sopenharmony_ci { 1040fad3a1d3Sopenharmony_ci match self { 1041fad3a1d3Sopenharmony_ci Fields::Named(v0) => { 1042fad3a1d3Sopenharmony_ci state.write_u8(0u8); 1043fad3a1d3Sopenharmony_ci v0.hash(state); 1044fad3a1d3Sopenharmony_ci } 1045fad3a1d3Sopenharmony_ci Fields::Unnamed(v0) => { 1046fad3a1d3Sopenharmony_ci state.write_u8(1u8); 1047fad3a1d3Sopenharmony_ci v0.hash(state); 1048fad3a1d3Sopenharmony_ci } 1049fad3a1d3Sopenharmony_ci Fields::Unit => { 1050fad3a1d3Sopenharmony_ci state.write_u8(2u8); 1051fad3a1d3Sopenharmony_ci } 1052fad3a1d3Sopenharmony_ci } 1053fad3a1d3Sopenharmony_ci } 1054fad3a1d3Sopenharmony_ci} 1055fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 1056fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1057fad3a1d3Sopenharmony_ciimpl Hash for FieldsNamed { 1058fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1059fad3a1d3Sopenharmony_ci where 1060fad3a1d3Sopenharmony_ci H: Hasher, 1061fad3a1d3Sopenharmony_ci { 1062fad3a1d3Sopenharmony_ci self.named.hash(state); 1063fad3a1d3Sopenharmony_ci } 1064fad3a1d3Sopenharmony_ci} 1065fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 1066fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1067fad3a1d3Sopenharmony_ciimpl Hash for FieldsUnnamed { 1068fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1069fad3a1d3Sopenharmony_ci where 1070fad3a1d3Sopenharmony_ci H: Hasher, 1071fad3a1d3Sopenharmony_ci { 1072fad3a1d3Sopenharmony_ci self.unnamed.hash(state); 1073fad3a1d3Sopenharmony_ci } 1074fad3a1d3Sopenharmony_ci} 1075fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1076fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1077fad3a1d3Sopenharmony_ciimpl Hash for File { 1078fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1079fad3a1d3Sopenharmony_ci where 1080fad3a1d3Sopenharmony_ci H: Hasher, 1081fad3a1d3Sopenharmony_ci { 1082fad3a1d3Sopenharmony_ci self.shebang.hash(state); 1083fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1084fad3a1d3Sopenharmony_ci self.items.hash(state); 1085fad3a1d3Sopenharmony_ci } 1086fad3a1d3Sopenharmony_ci} 1087fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1088fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1089fad3a1d3Sopenharmony_ciimpl Hash for FnArg { 1090fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1091fad3a1d3Sopenharmony_ci where 1092fad3a1d3Sopenharmony_ci H: Hasher, 1093fad3a1d3Sopenharmony_ci { 1094fad3a1d3Sopenharmony_ci match self { 1095fad3a1d3Sopenharmony_ci FnArg::Receiver(v0) => { 1096fad3a1d3Sopenharmony_ci state.write_u8(0u8); 1097fad3a1d3Sopenharmony_ci v0.hash(state); 1098fad3a1d3Sopenharmony_ci } 1099fad3a1d3Sopenharmony_ci FnArg::Typed(v0) => { 1100fad3a1d3Sopenharmony_ci state.write_u8(1u8); 1101fad3a1d3Sopenharmony_ci v0.hash(state); 1102fad3a1d3Sopenharmony_ci } 1103fad3a1d3Sopenharmony_ci } 1104fad3a1d3Sopenharmony_ci } 1105fad3a1d3Sopenharmony_ci} 1106fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1107fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1108fad3a1d3Sopenharmony_ciimpl Hash for ForeignItem { 1109fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1110fad3a1d3Sopenharmony_ci where 1111fad3a1d3Sopenharmony_ci H: Hasher, 1112fad3a1d3Sopenharmony_ci { 1113fad3a1d3Sopenharmony_ci match self { 1114fad3a1d3Sopenharmony_ci ForeignItem::Fn(v0) => { 1115fad3a1d3Sopenharmony_ci state.write_u8(0u8); 1116fad3a1d3Sopenharmony_ci v0.hash(state); 1117fad3a1d3Sopenharmony_ci } 1118fad3a1d3Sopenharmony_ci ForeignItem::Static(v0) => { 1119fad3a1d3Sopenharmony_ci state.write_u8(1u8); 1120fad3a1d3Sopenharmony_ci v0.hash(state); 1121fad3a1d3Sopenharmony_ci } 1122fad3a1d3Sopenharmony_ci ForeignItem::Type(v0) => { 1123fad3a1d3Sopenharmony_ci state.write_u8(2u8); 1124fad3a1d3Sopenharmony_ci v0.hash(state); 1125fad3a1d3Sopenharmony_ci } 1126fad3a1d3Sopenharmony_ci ForeignItem::Macro(v0) => { 1127fad3a1d3Sopenharmony_ci state.write_u8(3u8); 1128fad3a1d3Sopenharmony_ci v0.hash(state); 1129fad3a1d3Sopenharmony_ci } 1130fad3a1d3Sopenharmony_ci ForeignItem::Verbatim(v0) => { 1131fad3a1d3Sopenharmony_ci state.write_u8(4u8); 1132fad3a1d3Sopenharmony_ci TokenStreamHelper(v0).hash(state); 1133fad3a1d3Sopenharmony_ci } 1134fad3a1d3Sopenharmony_ci } 1135fad3a1d3Sopenharmony_ci } 1136fad3a1d3Sopenharmony_ci} 1137fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1138fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1139fad3a1d3Sopenharmony_ciimpl Hash for ForeignItemFn { 1140fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1141fad3a1d3Sopenharmony_ci where 1142fad3a1d3Sopenharmony_ci H: Hasher, 1143fad3a1d3Sopenharmony_ci { 1144fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1145fad3a1d3Sopenharmony_ci self.vis.hash(state); 1146fad3a1d3Sopenharmony_ci self.sig.hash(state); 1147fad3a1d3Sopenharmony_ci } 1148fad3a1d3Sopenharmony_ci} 1149fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1150fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1151fad3a1d3Sopenharmony_ciimpl Hash for ForeignItemMacro { 1152fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1153fad3a1d3Sopenharmony_ci where 1154fad3a1d3Sopenharmony_ci H: Hasher, 1155fad3a1d3Sopenharmony_ci { 1156fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1157fad3a1d3Sopenharmony_ci self.mac.hash(state); 1158fad3a1d3Sopenharmony_ci self.semi_token.hash(state); 1159fad3a1d3Sopenharmony_ci } 1160fad3a1d3Sopenharmony_ci} 1161fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1162fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1163fad3a1d3Sopenharmony_ciimpl Hash for ForeignItemStatic { 1164fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1165fad3a1d3Sopenharmony_ci where 1166fad3a1d3Sopenharmony_ci H: Hasher, 1167fad3a1d3Sopenharmony_ci { 1168fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1169fad3a1d3Sopenharmony_ci self.vis.hash(state); 1170fad3a1d3Sopenharmony_ci self.mutability.hash(state); 1171fad3a1d3Sopenharmony_ci self.ident.hash(state); 1172fad3a1d3Sopenharmony_ci self.ty.hash(state); 1173fad3a1d3Sopenharmony_ci } 1174fad3a1d3Sopenharmony_ci} 1175fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1176fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1177fad3a1d3Sopenharmony_ciimpl Hash for ForeignItemType { 1178fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1179fad3a1d3Sopenharmony_ci where 1180fad3a1d3Sopenharmony_ci H: Hasher, 1181fad3a1d3Sopenharmony_ci { 1182fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1183fad3a1d3Sopenharmony_ci self.vis.hash(state); 1184fad3a1d3Sopenharmony_ci self.ident.hash(state); 1185fad3a1d3Sopenharmony_ci self.generics.hash(state); 1186fad3a1d3Sopenharmony_ci } 1187fad3a1d3Sopenharmony_ci} 1188fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 1189fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1190fad3a1d3Sopenharmony_ciimpl Hash for GenericArgument { 1191fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1192fad3a1d3Sopenharmony_ci where 1193fad3a1d3Sopenharmony_ci H: Hasher, 1194fad3a1d3Sopenharmony_ci { 1195fad3a1d3Sopenharmony_ci match self { 1196fad3a1d3Sopenharmony_ci GenericArgument::Lifetime(v0) => { 1197fad3a1d3Sopenharmony_ci state.write_u8(0u8); 1198fad3a1d3Sopenharmony_ci v0.hash(state); 1199fad3a1d3Sopenharmony_ci } 1200fad3a1d3Sopenharmony_ci GenericArgument::Type(v0) => { 1201fad3a1d3Sopenharmony_ci state.write_u8(1u8); 1202fad3a1d3Sopenharmony_ci v0.hash(state); 1203fad3a1d3Sopenharmony_ci } 1204fad3a1d3Sopenharmony_ci GenericArgument::Const(v0) => { 1205fad3a1d3Sopenharmony_ci state.write_u8(2u8); 1206fad3a1d3Sopenharmony_ci v0.hash(state); 1207fad3a1d3Sopenharmony_ci } 1208fad3a1d3Sopenharmony_ci GenericArgument::AssocType(v0) => { 1209fad3a1d3Sopenharmony_ci state.write_u8(3u8); 1210fad3a1d3Sopenharmony_ci v0.hash(state); 1211fad3a1d3Sopenharmony_ci } 1212fad3a1d3Sopenharmony_ci GenericArgument::AssocConst(v0) => { 1213fad3a1d3Sopenharmony_ci state.write_u8(4u8); 1214fad3a1d3Sopenharmony_ci v0.hash(state); 1215fad3a1d3Sopenharmony_ci } 1216fad3a1d3Sopenharmony_ci GenericArgument::Constraint(v0) => { 1217fad3a1d3Sopenharmony_ci state.write_u8(5u8); 1218fad3a1d3Sopenharmony_ci v0.hash(state); 1219fad3a1d3Sopenharmony_ci } 1220fad3a1d3Sopenharmony_ci } 1221fad3a1d3Sopenharmony_ci } 1222fad3a1d3Sopenharmony_ci} 1223fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 1224fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1225fad3a1d3Sopenharmony_ciimpl Hash for GenericParam { 1226fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1227fad3a1d3Sopenharmony_ci where 1228fad3a1d3Sopenharmony_ci H: Hasher, 1229fad3a1d3Sopenharmony_ci { 1230fad3a1d3Sopenharmony_ci match self { 1231fad3a1d3Sopenharmony_ci GenericParam::Lifetime(v0) => { 1232fad3a1d3Sopenharmony_ci state.write_u8(0u8); 1233fad3a1d3Sopenharmony_ci v0.hash(state); 1234fad3a1d3Sopenharmony_ci } 1235fad3a1d3Sopenharmony_ci GenericParam::Type(v0) => { 1236fad3a1d3Sopenharmony_ci state.write_u8(1u8); 1237fad3a1d3Sopenharmony_ci v0.hash(state); 1238fad3a1d3Sopenharmony_ci } 1239fad3a1d3Sopenharmony_ci GenericParam::Const(v0) => { 1240fad3a1d3Sopenharmony_ci state.write_u8(2u8); 1241fad3a1d3Sopenharmony_ci v0.hash(state); 1242fad3a1d3Sopenharmony_ci } 1243fad3a1d3Sopenharmony_ci } 1244fad3a1d3Sopenharmony_ci } 1245fad3a1d3Sopenharmony_ci} 1246fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 1247fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1248fad3a1d3Sopenharmony_ciimpl Hash for Generics { 1249fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1250fad3a1d3Sopenharmony_ci where 1251fad3a1d3Sopenharmony_ci H: Hasher, 1252fad3a1d3Sopenharmony_ci { 1253fad3a1d3Sopenharmony_ci self.lt_token.hash(state); 1254fad3a1d3Sopenharmony_ci self.params.hash(state); 1255fad3a1d3Sopenharmony_ci self.gt_token.hash(state); 1256fad3a1d3Sopenharmony_ci self.where_clause.hash(state); 1257fad3a1d3Sopenharmony_ci } 1258fad3a1d3Sopenharmony_ci} 1259fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1260fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1261fad3a1d3Sopenharmony_ciimpl Hash for ImplItem { 1262fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1263fad3a1d3Sopenharmony_ci where 1264fad3a1d3Sopenharmony_ci H: Hasher, 1265fad3a1d3Sopenharmony_ci { 1266fad3a1d3Sopenharmony_ci match self { 1267fad3a1d3Sopenharmony_ci ImplItem::Const(v0) => { 1268fad3a1d3Sopenharmony_ci state.write_u8(0u8); 1269fad3a1d3Sopenharmony_ci v0.hash(state); 1270fad3a1d3Sopenharmony_ci } 1271fad3a1d3Sopenharmony_ci ImplItem::Fn(v0) => { 1272fad3a1d3Sopenharmony_ci state.write_u8(1u8); 1273fad3a1d3Sopenharmony_ci v0.hash(state); 1274fad3a1d3Sopenharmony_ci } 1275fad3a1d3Sopenharmony_ci ImplItem::Type(v0) => { 1276fad3a1d3Sopenharmony_ci state.write_u8(2u8); 1277fad3a1d3Sopenharmony_ci v0.hash(state); 1278fad3a1d3Sopenharmony_ci } 1279fad3a1d3Sopenharmony_ci ImplItem::Macro(v0) => { 1280fad3a1d3Sopenharmony_ci state.write_u8(3u8); 1281fad3a1d3Sopenharmony_ci v0.hash(state); 1282fad3a1d3Sopenharmony_ci } 1283fad3a1d3Sopenharmony_ci ImplItem::Verbatim(v0) => { 1284fad3a1d3Sopenharmony_ci state.write_u8(4u8); 1285fad3a1d3Sopenharmony_ci TokenStreamHelper(v0).hash(state); 1286fad3a1d3Sopenharmony_ci } 1287fad3a1d3Sopenharmony_ci } 1288fad3a1d3Sopenharmony_ci } 1289fad3a1d3Sopenharmony_ci} 1290fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1291fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1292fad3a1d3Sopenharmony_ciimpl Hash for ImplItemConst { 1293fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1294fad3a1d3Sopenharmony_ci where 1295fad3a1d3Sopenharmony_ci H: Hasher, 1296fad3a1d3Sopenharmony_ci { 1297fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1298fad3a1d3Sopenharmony_ci self.vis.hash(state); 1299fad3a1d3Sopenharmony_ci self.defaultness.hash(state); 1300fad3a1d3Sopenharmony_ci self.ident.hash(state); 1301fad3a1d3Sopenharmony_ci self.generics.hash(state); 1302fad3a1d3Sopenharmony_ci self.ty.hash(state); 1303fad3a1d3Sopenharmony_ci self.expr.hash(state); 1304fad3a1d3Sopenharmony_ci } 1305fad3a1d3Sopenharmony_ci} 1306fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1307fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1308fad3a1d3Sopenharmony_ciimpl Hash for ImplItemFn { 1309fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1310fad3a1d3Sopenharmony_ci where 1311fad3a1d3Sopenharmony_ci H: Hasher, 1312fad3a1d3Sopenharmony_ci { 1313fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1314fad3a1d3Sopenharmony_ci self.vis.hash(state); 1315fad3a1d3Sopenharmony_ci self.defaultness.hash(state); 1316fad3a1d3Sopenharmony_ci self.sig.hash(state); 1317fad3a1d3Sopenharmony_ci self.block.hash(state); 1318fad3a1d3Sopenharmony_ci } 1319fad3a1d3Sopenharmony_ci} 1320fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1321fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1322fad3a1d3Sopenharmony_ciimpl Hash for ImplItemMacro { 1323fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1324fad3a1d3Sopenharmony_ci where 1325fad3a1d3Sopenharmony_ci H: Hasher, 1326fad3a1d3Sopenharmony_ci { 1327fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1328fad3a1d3Sopenharmony_ci self.mac.hash(state); 1329fad3a1d3Sopenharmony_ci self.semi_token.hash(state); 1330fad3a1d3Sopenharmony_ci } 1331fad3a1d3Sopenharmony_ci} 1332fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1333fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1334fad3a1d3Sopenharmony_ciimpl Hash for ImplItemType { 1335fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1336fad3a1d3Sopenharmony_ci where 1337fad3a1d3Sopenharmony_ci H: Hasher, 1338fad3a1d3Sopenharmony_ci { 1339fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1340fad3a1d3Sopenharmony_ci self.vis.hash(state); 1341fad3a1d3Sopenharmony_ci self.defaultness.hash(state); 1342fad3a1d3Sopenharmony_ci self.ident.hash(state); 1343fad3a1d3Sopenharmony_ci self.generics.hash(state); 1344fad3a1d3Sopenharmony_ci self.ty.hash(state); 1345fad3a1d3Sopenharmony_ci } 1346fad3a1d3Sopenharmony_ci} 1347fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1348fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1349fad3a1d3Sopenharmony_ciimpl Hash for ImplRestriction { 1350fad3a1d3Sopenharmony_ci fn hash<H>(&self, _state: &mut H) 1351fad3a1d3Sopenharmony_ci where 1352fad3a1d3Sopenharmony_ci H: Hasher, 1353fad3a1d3Sopenharmony_ci { 1354fad3a1d3Sopenharmony_ci match *self {} 1355fad3a1d3Sopenharmony_ci } 1356fad3a1d3Sopenharmony_ci} 1357fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1358fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1359fad3a1d3Sopenharmony_ciimpl Hash for Item { 1360fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1361fad3a1d3Sopenharmony_ci where 1362fad3a1d3Sopenharmony_ci H: Hasher, 1363fad3a1d3Sopenharmony_ci { 1364fad3a1d3Sopenharmony_ci match self { 1365fad3a1d3Sopenharmony_ci Item::Const(v0) => { 1366fad3a1d3Sopenharmony_ci state.write_u8(0u8); 1367fad3a1d3Sopenharmony_ci v0.hash(state); 1368fad3a1d3Sopenharmony_ci } 1369fad3a1d3Sopenharmony_ci Item::Enum(v0) => { 1370fad3a1d3Sopenharmony_ci state.write_u8(1u8); 1371fad3a1d3Sopenharmony_ci v0.hash(state); 1372fad3a1d3Sopenharmony_ci } 1373fad3a1d3Sopenharmony_ci Item::ExternCrate(v0) => { 1374fad3a1d3Sopenharmony_ci state.write_u8(2u8); 1375fad3a1d3Sopenharmony_ci v0.hash(state); 1376fad3a1d3Sopenharmony_ci } 1377fad3a1d3Sopenharmony_ci Item::Fn(v0) => { 1378fad3a1d3Sopenharmony_ci state.write_u8(3u8); 1379fad3a1d3Sopenharmony_ci v0.hash(state); 1380fad3a1d3Sopenharmony_ci } 1381fad3a1d3Sopenharmony_ci Item::ForeignMod(v0) => { 1382fad3a1d3Sopenharmony_ci state.write_u8(4u8); 1383fad3a1d3Sopenharmony_ci v0.hash(state); 1384fad3a1d3Sopenharmony_ci } 1385fad3a1d3Sopenharmony_ci Item::Impl(v0) => { 1386fad3a1d3Sopenharmony_ci state.write_u8(5u8); 1387fad3a1d3Sopenharmony_ci v0.hash(state); 1388fad3a1d3Sopenharmony_ci } 1389fad3a1d3Sopenharmony_ci Item::Macro(v0) => { 1390fad3a1d3Sopenharmony_ci state.write_u8(6u8); 1391fad3a1d3Sopenharmony_ci v0.hash(state); 1392fad3a1d3Sopenharmony_ci } 1393fad3a1d3Sopenharmony_ci Item::Mod(v0) => { 1394fad3a1d3Sopenharmony_ci state.write_u8(7u8); 1395fad3a1d3Sopenharmony_ci v0.hash(state); 1396fad3a1d3Sopenharmony_ci } 1397fad3a1d3Sopenharmony_ci Item::Static(v0) => { 1398fad3a1d3Sopenharmony_ci state.write_u8(8u8); 1399fad3a1d3Sopenharmony_ci v0.hash(state); 1400fad3a1d3Sopenharmony_ci } 1401fad3a1d3Sopenharmony_ci Item::Struct(v0) => { 1402fad3a1d3Sopenharmony_ci state.write_u8(9u8); 1403fad3a1d3Sopenharmony_ci v0.hash(state); 1404fad3a1d3Sopenharmony_ci } 1405fad3a1d3Sopenharmony_ci Item::Trait(v0) => { 1406fad3a1d3Sopenharmony_ci state.write_u8(10u8); 1407fad3a1d3Sopenharmony_ci v0.hash(state); 1408fad3a1d3Sopenharmony_ci } 1409fad3a1d3Sopenharmony_ci Item::TraitAlias(v0) => { 1410fad3a1d3Sopenharmony_ci state.write_u8(11u8); 1411fad3a1d3Sopenharmony_ci v0.hash(state); 1412fad3a1d3Sopenharmony_ci } 1413fad3a1d3Sopenharmony_ci Item::Type(v0) => { 1414fad3a1d3Sopenharmony_ci state.write_u8(12u8); 1415fad3a1d3Sopenharmony_ci v0.hash(state); 1416fad3a1d3Sopenharmony_ci } 1417fad3a1d3Sopenharmony_ci Item::Union(v0) => { 1418fad3a1d3Sopenharmony_ci state.write_u8(13u8); 1419fad3a1d3Sopenharmony_ci v0.hash(state); 1420fad3a1d3Sopenharmony_ci } 1421fad3a1d3Sopenharmony_ci Item::Use(v0) => { 1422fad3a1d3Sopenharmony_ci state.write_u8(14u8); 1423fad3a1d3Sopenharmony_ci v0.hash(state); 1424fad3a1d3Sopenharmony_ci } 1425fad3a1d3Sopenharmony_ci Item::Verbatim(v0) => { 1426fad3a1d3Sopenharmony_ci state.write_u8(15u8); 1427fad3a1d3Sopenharmony_ci TokenStreamHelper(v0).hash(state); 1428fad3a1d3Sopenharmony_ci } 1429fad3a1d3Sopenharmony_ci } 1430fad3a1d3Sopenharmony_ci } 1431fad3a1d3Sopenharmony_ci} 1432fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1433fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1434fad3a1d3Sopenharmony_ciimpl Hash for ItemConst { 1435fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1436fad3a1d3Sopenharmony_ci where 1437fad3a1d3Sopenharmony_ci H: Hasher, 1438fad3a1d3Sopenharmony_ci { 1439fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1440fad3a1d3Sopenharmony_ci self.vis.hash(state); 1441fad3a1d3Sopenharmony_ci self.ident.hash(state); 1442fad3a1d3Sopenharmony_ci self.generics.hash(state); 1443fad3a1d3Sopenharmony_ci self.ty.hash(state); 1444fad3a1d3Sopenharmony_ci self.expr.hash(state); 1445fad3a1d3Sopenharmony_ci } 1446fad3a1d3Sopenharmony_ci} 1447fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1448fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1449fad3a1d3Sopenharmony_ciimpl Hash for ItemEnum { 1450fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1451fad3a1d3Sopenharmony_ci where 1452fad3a1d3Sopenharmony_ci H: Hasher, 1453fad3a1d3Sopenharmony_ci { 1454fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1455fad3a1d3Sopenharmony_ci self.vis.hash(state); 1456fad3a1d3Sopenharmony_ci self.ident.hash(state); 1457fad3a1d3Sopenharmony_ci self.generics.hash(state); 1458fad3a1d3Sopenharmony_ci self.variants.hash(state); 1459fad3a1d3Sopenharmony_ci } 1460fad3a1d3Sopenharmony_ci} 1461fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1462fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1463fad3a1d3Sopenharmony_ciimpl Hash for ItemExternCrate { 1464fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1465fad3a1d3Sopenharmony_ci where 1466fad3a1d3Sopenharmony_ci H: Hasher, 1467fad3a1d3Sopenharmony_ci { 1468fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1469fad3a1d3Sopenharmony_ci self.vis.hash(state); 1470fad3a1d3Sopenharmony_ci self.ident.hash(state); 1471fad3a1d3Sopenharmony_ci self.rename.hash(state); 1472fad3a1d3Sopenharmony_ci } 1473fad3a1d3Sopenharmony_ci} 1474fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1475fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1476fad3a1d3Sopenharmony_ciimpl Hash for ItemFn { 1477fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1478fad3a1d3Sopenharmony_ci where 1479fad3a1d3Sopenharmony_ci H: Hasher, 1480fad3a1d3Sopenharmony_ci { 1481fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1482fad3a1d3Sopenharmony_ci self.vis.hash(state); 1483fad3a1d3Sopenharmony_ci self.sig.hash(state); 1484fad3a1d3Sopenharmony_ci self.block.hash(state); 1485fad3a1d3Sopenharmony_ci } 1486fad3a1d3Sopenharmony_ci} 1487fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1488fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1489fad3a1d3Sopenharmony_ciimpl Hash for ItemForeignMod { 1490fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1491fad3a1d3Sopenharmony_ci where 1492fad3a1d3Sopenharmony_ci H: Hasher, 1493fad3a1d3Sopenharmony_ci { 1494fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1495fad3a1d3Sopenharmony_ci self.unsafety.hash(state); 1496fad3a1d3Sopenharmony_ci self.abi.hash(state); 1497fad3a1d3Sopenharmony_ci self.items.hash(state); 1498fad3a1d3Sopenharmony_ci } 1499fad3a1d3Sopenharmony_ci} 1500fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1501fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1502fad3a1d3Sopenharmony_ciimpl Hash for ItemImpl { 1503fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1504fad3a1d3Sopenharmony_ci where 1505fad3a1d3Sopenharmony_ci H: Hasher, 1506fad3a1d3Sopenharmony_ci { 1507fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1508fad3a1d3Sopenharmony_ci self.defaultness.hash(state); 1509fad3a1d3Sopenharmony_ci self.unsafety.hash(state); 1510fad3a1d3Sopenharmony_ci self.generics.hash(state); 1511fad3a1d3Sopenharmony_ci self.trait_.hash(state); 1512fad3a1d3Sopenharmony_ci self.self_ty.hash(state); 1513fad3a1d3Sopenharmony_ci self.items.hash(state); 1514fad3a1d3Sopenharmony_ci } 1515fad3a1d3Sopenharmony_ci} 1516fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1517fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1518fad3a1d3Sopenharmony_ciimpl Hash for ItemMacro { 1519fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1520fad3a1d3Sopenharmony_ci where 1521fad3a1d3Sopenharmony_ci H: Hasher, 1522fad3a1d3Sopenharmony_ci { 1523fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1524fad3a1d3Sopenharmony_ci self.ident.hash(state); 1525fad3a1d3Sopenharmony_ci self.mac.hash(state); 1526fad3a1d3Sopenharmony_ci self.semi_token.hash(state); 1527fad3a1d3Sopenharmony_ci } 1528fad3a1d3Sopenharmony_ci} 1529fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1530fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1531fad3a1d3Sopenharmony_ciimpl Hash for ItemMod { 1532fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1533fad3a1d3Sopenharmony_ci where 1534fad3a1d3Sopenharmony_ci H: Hasher, 1535fad3a1d3Sopenharmony_ci { 1536fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1537fad3a1d3Sopenharmony_ci self.vis.hash(state); 1538fad3a1d3Sopenharmony_ci self.unsafety.hash(state); 1539fad3a1d3Sopenharmony_ci self.ident.hash(state); 1540fad3a1d3Sopenharmony_ci self.content.hash(state); 1541fad3a1d3Sopenharmony_ci self.semi.hash(state); 1542fad3a1d3Sopenharmony_ci } 1543fad3a1d3Sopenharmony_ci} 1544fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1545fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1546fad3a1d3Sopenharmony_ciimpl Hash for ItemStatic { 1547fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1548fad3a1d3Sopenharmony_ci where 1549fad3a1d3Sopenharmony_ci H: Hasher, 1550fad3a1d3Sopenharmony_ci { 1551fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1552fad3a1d3Sopenharmony_ci self.vis.hash(state); 1553fad3a1d3Sopenharmony_ci self.mutability.hash(state); 1554fad3a1d3Sopenharmony_ci self.ident.hash(state); 1555fad3a1d3Sopenharmony_ci self.ty.hash(state); 1556fad3a1d3Sopenharmony_ci self.expr.hash(state); 1557fad3a1d3Sopenharmony_ci } 1558fad3a1d3Sopenharmony_ci} 1559fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1560fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1561fad3a1d3Sopenharmony_ciimpl Hash for ItemStruct { 1562fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1563fad3a1d3Sopenharmony_ci where 1564fad3a1d3Sopenharmony_ci H: Hasher, 1565fad3a1d3Sopenharmony_ci { 1566fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1567fad3a1d3Sopenharmony_ci self.vis.hash(state); 1568fad3a1d3Sopenharmony_ci self.ident.hash(state); 1569fad3a1d3Sopenharmony_ci self.generics.hash(state); 1570fad3a1d3Sopenharmony_ci self.fields.hash(state); 1571fad3a1d3Sopenharmony_ci self.semi_token.hash(state); 1572fad3a1d3Sopenharmony_ci } 1573fad3a1d3Sopenharmony_ci} 1574fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1575fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1576fad3a1d3Sopenharmony_ciimpl Hash for ItemTrait { 1577fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1578fad3a1d3Sopenharmony_ci where 1579fad3a1d3Sopenharmony_ci H: Hasher, 1580fad3a1d3Sopenharmony_ci { 1581fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1582fad3a1d3Sopenharmony_ci self.vis.hash(state); 1583fad3a1d3Sopenharmony_ci self.unsafety.hash(state); 1584fad3a1d3Sopenharmony_ci self.auto_token.hash(state); 1585fad3a1d3Sopenharmony_ci self.restriction.hash(state); 1586fad3a1d3Sopenharmony_ci self.ident.hash(state); 1587fad3a1d3Sopenharmony_ci self.generics.hash(state); 1588fad3a1d3Sopenharmony_ci self.colon_token.hash(state); 1589fad3a1d3Sopenharmony_ci self.supertraits.hash(state); 1590fad3a1d3Sopenharmony_ci self.items.hash(state); 1591fad3a1d3Sopenharmony_ci } 1592fad3a1d3Sopenharmony_ci} 1593fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1594fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1595fad3a1d3Sopenharmony_ciimpl Hash for ItemTraitAlias { 1596fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1597fad3a1d3Sopenharmony_ci where 1598fad3a1d3Sopenharmony_ci H: Hasher, 1599fad3a1d3Sopenharmony_ci { 1600fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1601fad3a1d3Sopenharmony_ci self.vis.hash(state); 1602fad3a1d3Sopenharmony_ci self.ident.hash(state); 1603fad3a1d3Sopenharmony_ci self.generics.hash(state); 1604fad3a1d3Sopenharmony_ci self.bounds.hash(state); 1605fad3a1d3Sopenharmony_ci } 1606fad3a1d3Sopenharmony_ci} 1607fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1608fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1609fad3a1d3Sopenharmony_ciimpl Hash for ItemType { 1610fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1611fad3a1d3Sopenharmony_ci where 1612fad3a1d3Sopenharmony_ci H: Hasher, 1613fad3a1d3Sopenharmony_ci { 1614fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1615fad3a1d3Sopenharmony_ci self.vis.hash(state); 1616fad3a1d3Sopenharmony_ci self.ident.hash(state); 1617fad3a1d3Sopenharmony_ci self.generics.hash(state); 1618fad3a1d3Sopenharmony_ci self.ty.hash(state); 1619fad3a1d3Sopenharmony_ci } 1620fad3a1d3Sopenharmony_ci} 1621fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1622fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1623fad3a1d3Sopenharmony_ciimpl Hash for ItemUnion { 1624fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1625fad3a1d3Sopenharmony_ci where 1626fad3a1d3Sopenharmony_ci H: Hasher, 1627fad3a1d3Sopenharmony_ci { 1628fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1629fad3a1d3Sopenharmony_ci self.vis.hash(state); 1630fad3a1d3Sopenharmony_ci self.ident.hash(state); 1631fad3a1d3Sopenharmony_ci self.generics.hash(state); 1632fad3a1d3Sopenharmony_ci self.fields.hash(state); 1633fad3a1d3Sopenharmony_ci } 1634fad3a1d3Sopenharmony_ci} 1635fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1636fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1637fad3a1d3Sopenharmony_ciimpl Hash for ItemUse { 1638fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1639fad3a1d3Sopenharmony_ci where 1640fad3a1d3Sopenharmony_ci H: Hasher, 1641fad3a1d3Sopenharmony_ci { 1642fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1643fad3a1d3Sopenharmony_ci self.vis.hash(state); 1644fad3a1d3Sopenharmony_ci self.leading_colon.hash(state); 1645fad3a1d3Sopenharmony_ci self.tree.hash(state); 1646fad3a1d3Sopenharmony_ci } 1647fad3a1d3Sopenharmony_ci} 1648fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1649fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1650fad3a1d3Sopenharmony_ciimpl Hash for Label { 1651fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1652fad3a1d3Sopenharmony_ci where 1653fad3a1d3Sopenharmony_ci H: Hasher, 1654fad3a1d3Sopenharmony_ci { 1655fad3a1d3Sopenharmony_ci self.name.hash(state); 1656fad3a1d3Sopenharmony_ci } 1657fad3a1d3Sopenharmony_ci} 1658fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 1659fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1660fad3a1d3Sopenharmony_ciimpl Hash for LifetimeParam { 1661fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1662fad3a1d3Sopenharmony_ci where 1663fad3a1d3Sopenharmony_ci H: Hasher, 1664fad3a1d3Sopenharmony_ci { 1665fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1666fad3a1d3Sopenharmony_ci self.lifetime.hash(state); 1667fad3a1d3Sopenharmony_ci self.colon_token.hash(state); 1668fad3a1d3Sopenharmony_ci self.bounds.hash(state); 1669fad3a1d3Sopenharmony_ci } 1670fad3a1d3Sopenharmony_ci} 1671fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1672fad3a1d3Sopenharmony_ciimpl Hash for Lit { 1673fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1674fad3a1d3Sopenharmony_ci where 1675fad3a1d3Sopenharmony_ci H: Hasher, 1676fad3a1d3Sopenharmony_ci { 1677fad3a1d3Sopenharmony_ci match self { 1678fad3a1d3Sopenharmony_ci Lit::Str(v0) => { 1679fad3a1d3Sopenharmony_ci state.write_u8(0u8); 1680fad3a1d3Sopenharmony_ci v0.hash(state); 1681fad3a1d3Sopenharmony_ci } 1682fad3a1d3Sopenharmony_ci Lit::ByteStr(v0) => { 1683fad3a1d3Sopenharmony_ci state.write_u8(1u8); 1684fad3a1d3Sopenharmony_ci v0.hash(state); 1685fad3a1d3Sopenharmony_ci } 1686fad3a1d3Sopenharmony_ci Lit::Byte(v0) => { 1687fad3a1d3Sopenharmony_ci state.write_u8(2u8); 1688fad3a1d3Sopenharmony_ci v0.hash(state); 1689fad3a1d3Sopenharmony_ci } 1690fad3a1d3Sopenharmony_ci Lit::Char(v0) => { 1691fad3a1d3Sopenharmony_ci state.write_u8(3u8); 1692fad3a1d3Sopenharmony_ci v0.hash(state); 1693fad3a1d3Sopenharmony_ci } 1694fad3a1d3Sopenharmony_ci Lit::Int(v0) => { 1695fad3a1d3Sopenharmony_ci state.write_u8(4u8); 1696fad3a1d3Sopenharmony_ci v0.hash(state); 1697fad3a1d3Sopenharmony_ci } 1698fad3a1d3Sopenharmony_ci Lit::Float(v0) => { 1699fad3a1d3Sopenharmony_ci state.write_u8(5u8); 1700fad3a1d3Sopenharmony_ci v0.hash(state); 1701fad3a1d3Sopenharmony_ci } 1702fad3a1d3Sopenharmony_ci Lit::Bool(v0) => { 1703fad3a1d3Sopenharmony_ci state.write_u8(6u8); 1704fad3a1d3Sopenharmony_ci v0.hash(state); 1705fad3a1d3Sopenharmony_ci } 1706fad3a1d3Sopenharmony_ci Lit::Verbatim(v0) => { 1707fad3a1d3Sopenharmony_ci state.write_u8(7u8); 1708fad3a1d3Sopenharmony_ci v0.to_string().hash(state); 1709fad3a1d3Sopenharmony_ci } 1710fad3a1d3Sopenharmony_ci } 1711fad3a1d3Sopenharmony_ci } 1712fad3a1d3Sopenharmony_ci} 1713fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1714fad3a1d3Sopenharmony_ciimpl Hash for LitBool { 1715fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1716fad3a1d3Sopenharmony_ci where 1717fad3a1d3Sopenharmony_ci H: Hasher, 1718fad3a1d3Sopenharmony_ci { 1719fad3a1d3Sopenharmony_ci self.value.hash(state); 1720fad3a1d3Sopenharmony_ci } 1721fad3a1d3Sopenharmony_ci} 1722fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1723fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1724fad3a1d3Sopenharmony_ciimpl Hash for Local { 1725fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1726fad3a1d3Sopenharmony_ci where 1727fad3a1d3Sopenharmony_ci H: Hasher, 1728fad3a1d3Sopenharmony_ci { 1729fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1730fad3a1d3Sopenharmony_ci self.pat.hash(state); 1731fad3a1d3Sopenharmony_ci self.init.hash(state); 1732fad3a1d3Sopenharmony_ci } 1733fad3a1d3Sopenharmony_ci} 1734fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1735fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1736fad3a1d3Sopenharmony_ciimpl Hash for LocalInit { 1737fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1738fad3a1d3Sopenharmony_ci where 1739fad3a1d3Sopenharmony_ci H: Hasher, 1740fad3a1d3Sopenharmony_ci { 1741fad3a1d3Sopenharmony_ci self.expr.hash(state); 1742fad3a1d3Sopenharmony_ci self.diverge.hash(state); 1743fad3a1d3Sopenharmony_ci } 1744fad3a1d3Sopenharmony_ci} 1745fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 1746fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1747fad3a1d3Sopenharmony_ciimpl Hash for Macro { 1748fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1749fad3a1d3Sopenharmony_ci where 1750fad3a1d3Sopenharmony_ci H: Hasher, 1751fad3a1d3Sopenharmony_ci { 1752fad3a1d3Sopenharmony_ci self.path.hash(state); 1753fad3a1d3Sopenharmony_ci self.delimiter.hash(state); 1754fad3a1d3Sopenharmony_ci TokenStreamHelper(&self.tokens).hash(state); 1755fad3a1d3Sopenharmony_ci } 1756fad3a1d3Sopenharmony_ci} 1757fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 1758fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1759fad3a1d3Sopenharmony_ciimpl Hash for MacroDelimiter { 1760fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1761fad3a1d3Sopenharmony_ci where 1762fad3a1d3Sopenharmony_ci H: Hasher, 1763fad3a1d3Sopenharmony_ci { 1764fad3a1d3Sopenharmony_ci match self { 1765fad3a1d3Sopenharmony_ci MacroDelimiter::Paren(_) => { 1766fad3a1d3Sopenharmony_ci state.write_u8(0u8); 1767fad3a1d3Sopenharmony_ci } 1768fad3a1d3Sopenharmony_ci MacroDelimiter::Brace(_) => { 1769fad3a1d3Sopenharmony_ci state.write_u8(1u8); 1770fad3a1d3Sopenharmony_ci } 1771fad3a1d3Sopenharmony_ci MacroDelimiter::Bracket(_) => { 1772fad3a1d3Sopenharmony_ci state.write_u8(2u8); 1773fad3a1d3Sopenharmony_ci } 1774fad3a1d3Sopenharmony_ci } 1775fad3a1d3Sopenharmony_ci } 1776fad3a1d3Sopenharmony_ci} 1777fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 1778fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1779fad3a1d3Sopenharmony_ciimpl Hash for Meta { 1780fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1781fad3a1d3Sopenharmony_ci where 1782fad3a1d3Sopenharmony_ci H: Hasher, 1783fad3a1d3Sopenharmony_ci { 1784fad3a1d3Sopenharmony_ci match self { 1785fad3a1d3Sopenharmony_ci Meta::Path(v0) => { 1786fad3a1d3Sopenharmony_ci state.write_u8(0u8); 1787fad3a1d3Sopenharmony_ci v0.hash(state); 1788fad3a1d3Sopenharmony_ci } 1789fad3a1d3Sopenharmony_ci Meta::List(v0) => { 1790fad3a1d3Sopenharmony_ci state.write_u8(1u8); 1791fad3a1d3Sopenharmony_ci v0.hash(state); 1792fad3a1d3Sopenharmony_ci } 1793fad3a1d3Sopenharmony_ci Meta::NameValue(v0) => { 1794fad3a1d3Sopenharmony_ci state.write_u8(2u8); 1795fad3a1d3Sopenharmony_ci v0.hash(state); 1796fad3a1d3Sopenharmony_ci } 1797fad3a1d3Sopenharmony_ci } 1798fad3a1d3Sopenharmony_ci } 1799fad3a1d3Sopenharmony_ci} 1800fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 1801fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1802fad3a1d3Sopenharmony_ciimpl Hash for MetaList { 1803fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1804fad3a1d3Sopenharmony_ci where 1805fad3a1d3Sopenharmony_ci H: Hasher, 1806fad3a1d3Sopenharmony_ci { 1807fad3a1d3Sopenharmony_ci self.path.hash(state); 1808fad3a1d3Sopenharmony_ci self.delimiter.hash(state); 1809fad3a1d3Sopenharmony_ci TokenStreamHelper(&self.tokens).hash(state); 1810fad3a1d3Sopenharmony_ci } 1811fad3a1d3Sopenharmony_ci} 1812fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 1813fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1814fad3a1d3Sopenharmony_ciimpl Hash for MetaNameValue { 1815fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1816fad3a1d3Sopenharmony_ci where 1817fad3a1d3Sopenharmony_ci H: Hasher, 1818fad3a1d3Sopenharmony_ci { 1819fad3a1d3Sopenharmony_ci self.path.hash(state); 1820fad3a1d3Sopenharmony_ci self.value.hash(state); 1821fad3a1d3Sopenharmony_ci } 1822fad3a1d3Sopenharmony_ci} 1823fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 1824fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1825fad3a1d3Sopenharmony_ciimpl Hash for ParenthesizedGenericArguments { 1826fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1827fad3a1d3Sopenharmony_ci where 1828fad3a1d3Sopenharmony_ci H: Hasher, 1829fad3a1d3Sopenharmony_ci { 1830fad3a1d3Sopenharmony_ci self.inputs.hash(state); 1831fad3a1d3Sopenharmony_ci self.output.hash(state); 1832fad3a1d3Sopenharmony_ci } 1833fad3a1d3Sopenharmony_ci} 1834fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1835fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1836fad3a1d3Sopenharmony_ciimpl Hash for Pat { 1837fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1838fad3a1d3Sopenharmony_ci where 1839fad3a1d3Sopenharmony_ci H: Hasher, 1840fad3a1d3Sopenharmony_ci { 1841fad3a1d3Sopenharmony_ci match self { 1842fad3a1d3Sopenharmony_ci Pat::Const(v0) => { 1843fad3a1d3Sopenharmony_ci state.write_u8(0u8); 1844fad3a1d3Sopenharmony_ci v0.hash(state); 1845fad3a1d3Sopenharmony_ci } 1846fad3a1d3Sopenharmony_ci Pat::Ident(v0) => { 1847fad3a1d3Sopenharmony_ci state.write_u8(1u8); 1848fad3a1d3Sopenharmony_ci v0.hash(state); 1849fad3a1d3Sopenharmony_ci } 1850fad3a1d3Sopenharmony_ci Pat::Lit(v0) => { 1851fad3a1d3Sopenharmony_ci state.write_u8(2u8); 1852fad3a1d3Sopenharmony_ci v0.hash(state); 1853fad3a1d3Sopenharmony_ci } 1854fad3a1d3Sopenharmony_ci Pat::Macro(v0) => { 1855fad3a1d3Sopenharmony_ci state.write_u8(3u8); 1856fad3a1d3Sopenharmony_ci v0.hash(state); 1857fad3a1d3Sopenharmony_ci } 1858fad3a1d3Sopenharmony_ci Pat::Or(v0) => { 1859fad3a1d3Sopenharmony_ci state.write_u8(4u8); 1860fad3a1d3Sopenharmony_ci v0.hash(state); 1861fad3a1d3Sopenharmony_ci } 1862fad3a1d3Sopenharmony_ci Pat::Paren(v0) => { 1863fad3a1d3Sopenharmony_ci state.write_u8(5u8); 1864fad3a1d3Sopenharmony_ci v0.hash(state); 1865fad3a1d3Sopenharmony_ci } 1866fad3a1d3Sopenharmony_ci Pat::Path(v0) => { 1867fad3a1d3Sopenharmony_ci state.write_u8(6u8); 1868fad3a1d3Sopenharmony_ci v0.hash(state); 1869fad3a1d3Sopenharmony_ci } 1870fad3a1d3Sopenharmony_ci Pat::Range(v0) => { 1871fad3a1d3Sopenharmony_ci state.write_u8(7u8); 1872fad3a1d3Sopenharmony_ci v0.hash(state); 1873fad3a1d3Sopenharmony_ci } 1874fad3a1d3Sopenharmony_ci Pat::Reference(v0) => { 1875fad3a1d3Sopenharmony_ci state.write_u8(8u8); 1876fad3a1d3Sopenharmony_ci v0.hash(state); 1877fad3a1d3Sopenharmony_ci } 1878fad3a1d3Sopenharmony_ci Pat::Rest(v0) => { 1879fad3a1d3Sopenharmony_ci state.write_u8(9u8); 1880fad3a1d3Sopenharmony_ci v0.hash(state); 1881fad3a1d3Sopenharmony_ci } 1882fad3a1d3Sopenharmony_ci Pat::Slice(v0) => { 1883fad3a1d3Sopenharmony_ci state.write_u8(10u8); 1884fad3a1d3Sopenharmony_ci v0.hash(state); 1885fad3a1d3Sopenharmony_ci } 1886fad3a1d3Sopenharmony_ci Pat::Struct(v0) => { 1887fad3a1d3Sopenharmony_ci state.write_u8(11u8); 1888fad3a1d3Sopenharmony_ci v0.hash(state); 1889fad3a1d3Sopenharmony_ci } 1890fad3a1d3Sopenharmony_ci Pat::Tuple(v0) => { 1891fad3a1d3Sopenharmony_ci state.write_u8(12u8); 1892fad3a1d3Sopenharmony_ci v0.hash(state); 1893fad3a1d3Sopenharmony_ci } 1894fad3a1d3Sopenharmony_ci Pat::TupleStruct(v0) => { 1895fad3a1d3Sopenharmony_ci state.write_u8(13u8); 1896fad3a1d3Sopenharmony_ci v0.hash(state); 1897fad3a1d3Sopenharmony_ci } 1898fad3a1d3Sopenharmony_ci Pat::Type(v0) => { 1899fad3a1d3Sopenharmony_ci state.write_u8(14u8); 1900fad3a1d3Sopenharmony_ci v0.hash(state); 1901fad3a1d3Sopenharmony_ci } 1902fad3a1d3Sopenharmony_ci Pat::Verbatim(v0) => { 1903fad3a1d3Sopenharmony_ci state.write_u8(15u8); 1904fad3a1d3Sopenharmony_ci TokenStreamHelper(v0).hash(state); 1905fad3a1d3Sopenharmony_ci } 1906fad3a1d3Sopenharmony_ci Pat::Wild(v0) => { 1907fad3a1d3Sopenharmony_ci state.write_u8(16u8); 1908fad3a1d3Sopenharmony_ci v0.hash(state); 1909fad3a1d3Sopenharmony_ci } 1910fad3a1d3Sopenharmony_ci } 1911fad3a1d3Sopenharmony_ci } 1912fad3a1d3Sopenharmony_ci} 1913fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1914fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1915fad3a1d3Sopenharmony_ciimpl Hash for PatIdent { 1916fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1917fad3a1d3Sopenharmony_ci where 1918fad3a1d3Sopenharmony_ci H: Hasher, 1919fad3a1d3Sopenharmony_ci { 1920fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1921fad3a1d3Sopenharmony_ci self.by_ref.hash(state); 1922fad3a1d3Sopenharmony_ci self.mutability.hash(state); 1923fad3a1d3Sopenharmony_ci self.ident.hash(state); 1924fad3a1d3Sopenharmony_ci self.subpat.hash(state); 1925fad3a1d3Sopenharmony_ci } 1926fad3a1d3Sopenharmony_ci} 1927fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1928fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1929fad3a1d3Sopenharmony_ciimpl Hash for PatOr { 1930fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1931fad3a1d3Sopenharmony_ci where 1932fad3a1d3Sopenharmony_ci H: Hasher, 1933fad3a1d3Sopenharmony_ci { 1934fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1935fad3a1d3Sopenharmony_ci self.leading_vert.hash(state); 1936fad3a1d3Sopenharmony_ci self.cases.hash(state); 1937fad3a1d3Sopenharmony_ci } 1938fad3a1d3Sopenharmony_ci} 1939fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1940fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1941fad3a1d3Sopenharmony_ciimpl Hash for PatParen { 1942fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1943fad3a1d3Sopenharmony_ci where 1944fad3a1d3Sopenharmony_ci H: Hasher, 1945fad3a1d3Sopenharmony_ci { 1946fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1947fad3a1d3Sopenharmony_ci self.pat.hash(state); 1948fad3a1d3Sopenharmony_ci } 1949fad3a1d3Sopenharmony_ci} 1950fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1951fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1952fad3a1d3Sopenharmony_ciimpl Hash for PatReference { 1953fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1954fad3a1d3Sopenharmony_ci where 1955fad3a1d3Sopenharmony_ci H: Hasher, 1956fad3a1d3Sopenharmony_ci { 1957fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1958fad3a1d3Sopenharmony_ci self.mutability.hash(state); 1959fad3a1d3Sopenharmony_ci self.pat.hash(state); 1960fad3a1d3Sopenharmony_ci } 1961fad3a1d3Sopenharmony_ci} 1962fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1963fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1964fad3a1d3Sopenharmony_ciimpl Hash for PatRest { 1965fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1966fad3a1d3Sopenharmony_ci where 1967fad3a1d3Sopenharmony_ci H: Hasher, 1968fad3a1d3Sopenharmony_ci { 1969fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1970fad3a1d3Sopenharmony_ci } 1971fad3a1d3Sopenharmony_ci} 1972fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1973fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1974fad3a1d3Sopenharmony_ciimpl Hash for PatSlice { 1975fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1976fad3a1d3Sopenharmony_ci where 1977fad3a1d3Sopenharmony_ci H: Hasher, 1978fad3a1d3Sopenharmony_ci { 1979fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1980fad3a1d3Sopenharmony_ci self.elems.hash(state); 1981fad3a1d3Sopenharmony_ci } 1982fad3a1d3Sopenharmony_ci} 1983fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1984fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1985fad3a1d3Sopenharmony_ciimpl Hash for PatStruct { 1986fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 1987fad3a1d3Sopenharmony_ci where 1988fad3a1d3Sopenharmony_ci H: Hasher, 1989fad3a1d3Sopenharmony_ci { 1990fad3a1d3Sopenharmony_ci self.attrs.hash(state); 1991fad3a1d3Sopenharmony_ci self.qself.hash(state); 1992fad3a1d3Sopenharmony_ci self.path.hash(state); 1993fad3a1d3Sopenharmony_ci self.fields.hash(state); 1994fad3a1d3Sopenharmony_ci self.rest.hash(state); 1995fad3a1d3Sopenharmony_ci } 1996fad3a1d3Sopenharmony_ci} 1997fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 1998fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 1999fad3a1d3Sopenharmony_ciimpl Hash for PatTuple { 2000fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2001fad3a1d3Sopenharmony_ci where 2002fad3a1d3Sopenharmony_ci H: Hasher, 2003fad3a1d3Sopenharmony_ci { 2004fad3a1d3Sopenharmony_ci self.attrs.hash(state); 2005fad3a1d3Sopenharmony_ci self.elems.hash(state); 2006fad3a1d3Sopenharmony_ci } 2007fad3a1d3Sopenharmony_ci} 2008fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 2009fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2010fad3a1d3Sopenharmony_ciimpl Hash for PatTupleStruct { 2011fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2012fad3a1d3Sopenharmony_ci where 2013fad3a1d3Sopenharmony_ci H: Hasher, 2014fad3a1d3Sopenharmony_ci { 2015fad3a1d3Sopenharmony_ci self.attrs.hash(state); 2016fad3a1d3Sopenharmony_ci self.qself.hash(state); 2017fad3a1d3Sopenharmony_ci self.path.hash(state); 2018fad3a1d3Sopenharmony_ci self.elems.hash(state); 2019fad3a1d3Sopenharmony_ci } 2020fad3a1d3Sopenharmony_ci} 2021fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 2022fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2023fad3a1d3Sopenharmony_ciimpl Hash for PatType { 2024fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2025fad3a1d3Sopenharmony_ci where 2026fad3a1d3Sopenharmony_ci H: Hasher, 2027fad3a1d3Sopenharmony_ci { 2028fad3a1d3Sopenharmony_ci self.attrs.hash(state); 2029fad3a1d3Sopenharmony_ci self.pat.hash(state); 2030fad3a1d3Sopenharmony_ci self.ty.hash(state); 2031fad3a1d3Sopenharmony_ci } 2032fad3a1d3Sopenharmony_ci} 2033fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 2034fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2035fad3a1d3Sopenharmony_ciimpl Hash for PatWild { 2036fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2037fad3a1d3Sopenharmony_ci where 2038fad3a1d3Sopenharmony_ci H: Hasher, 2039fad3a1d3Sopenharmony_ci { 2040fad3a1d3Sopenharmony_ci self.attrs.hash(state); 2041fad3a1d3Sopenharmony_ci } 2042fad3a1d3Sopenharmony_ci} 2043fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2044fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2045fad3a1d3Sopenharmony_ciimpl Hash for Path { 2046fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2047fad3a1d3Sopenharmony_ci where 2048fad3a1d3Sopenharmony_ci H: Hasher, 2049fad3a1d3Sopenharmony_ci { 2050fad3a1d3Sopenharmony_ci self.leading_colon.hash(state); 2051fad3a1d3Sopenharmony_ci self.segments.hash(state); 2052fad3a1d3Sopenharmony_ci } 2053fad3a1d3Sopenharmony_ci} 2054fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2055fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2056fad3a1d3Sopenharmony_ciimpl Hash for PathArguments { 2057fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2058fad3a1d3Sopenharmony_ci where 2059fad3a1d3Sopenharmony_ci H: Hasher, 2060fad3a1d3Sopenharmony_ci { 2061fad3a1d3Sopenharmony_ci match self { 2062fad3a1d3Sopenharmony_ci PathArguments::None => { 2063fad3a1d3Sopenharmony_ci state.write_u8(0u8); 2064fad3a1d3Sopenharmony_ci } 2065fad3a1d3Sopenharmony_ci PathArguments::AngleBracketed(v0) => { 2066fad3a1d3Sopenharmony_ci state.write_u8(1u8); 2067fad3a1d3Sopenharmony_ci v0.hash(state); 2068fad3a1d3Sopenharmony_ci } 2069fad3a1d3Sopenharmony_ci PathArguments::Parenthesized(v0) => { 2070fad3a1d3Sopenharmony_ci state.write_u8(2u8); 2071fad3a1d3Sopenharmony_ci v0.hash(state); 2072fad3a1d3Sopenharmony_ci } 2073fad3a1d3Sopenharmony_ci } 2074fad3a1d3Sopenharmony_ci } 2075fad3a1d3Sopenharmony_ci} 2076fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2077fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2078fad3a1d3Sopenharmony_ciimpl Hash for PathSegment { 2079fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2080fad3a1d3Sopenharmony_ci where 2081fad3a1d3Sopenharmony_ci H: Hasher, 2082fad3a1d3Sopenharmony_ci { 2083fad3a1d3Sopenharmony_ci self.ident.hash(state); 2084fad3a1d3Sopenharmony_ci self.arguments.hash(state); 2085fad3a1d3Sopenharmony_ci } 2086fad3a1d3Sopenharmony_ci} 2087fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2088fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2089fad3a1d3Sopenharmony_ciimpl Hash for PredicateLifetime { 2090fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2091fad3a1d3Sopenharmony_ci where 2092fad3a1d3Sopenharmony_ci H: Hasher, 2093fad3a1d3Sopenharmony_ci { 2094fad3a1d3Sopenharmony_ci self.lifetime.hash(state); 2095fad3a1d3Sopenharmony_ci self.bounds.hash(state); 2096fad3a1d3Sopenharmony_ci } 2097fad3a1d3Sopenharmony_ci} 2098fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2099fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2100fad3a1d3Sopenharmony_ciimpl Hash for PredicateType { 2101fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2102fad3a1d3Sopenharmony_ci where 2103fad3a1d3Sopenharmony_ci H: Hasher, 2104fad3a1d3Sopenharmony_ci { 2105fad3a1d3Sopenharmony_ci self.lifetimes.hash(state); 2106fad3a1d3Sopenharmony_ci self.bounded_ty.hash(state); 2107fad3a1d3Sopenharmony_ci self.bounds.hash(state); 2108fad3a1d3Sopenharmony_ci } 2109fad3a1d3Sopenharmony_ci} 2110fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2111fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2112fad3a1d3Sopenharmony_ciimpl Hash for QSelf { 2113fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2114fad3a1d3Sopenharmony_ci where 2115fad3a1d3Sopenharmony_ci H: Hasher, 2116fad3a1d3Sopenharmony_ci { 2117fad3a1d3Sopenharmony_ci self.ty.hash(state); 2118fad3a1d3Sopenharmony_ci self.position.hash(state); 2119fad3a1d3Sopenharmony_ci self.as_token.hash(state); 2120fad3a1d3Sopenharmony_ci } 2121fad3a1d3Sopenharmony_ci} 2122fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 2123fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2124fad3a1d3Sopenharmony_ciimpl Hash for RangeLimits { 2125fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2126fad3a1d3Sopenharmony_ci where 2127fad3a1d3Sopenharmony_ci H: Hasher, 2128fad3a1d3Sopenharmony_ci { 2129fad3a1d3Sopenharmony_ci match self { 2130fad3a1d3Sopenharmony_ci RangeLimits::HalfOpen(_) => { 2131fad3a1d3Sopenharmony_ci state.write_u8(0u8); 2132fad3a1d3Sopenharmony_ci } 2133fad3a1d3Sopenharmony_ci RangeLimits::Closed(_) => { 2134fad3a1d3Sopenharmony_ci state.write_u8(1u8); 2135fad3a1d3Sopenharmony_ci } 2136fad3a1d3Sopenharmony_ci } 2137fad3a1d3Sopenharmony_ci } 2138fad3a1d3Sopenharmony_ci} 2139fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 2140fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2141fad3a1d3Sopenharmony_ciimpl Hash for Receiver { 2142fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2143fad3a1d3Sopenharmony_ci where 2144fad3a1d3Sopenharmony_ci H: Hasher, 2145fad3a1d3Sopenharmony_ci { 2146fad3a1d3Sopenharmony_ci self.attrs.hash(state); 2147fad3a1d3Sopenharmony_ci self.reference.hash(state); 2148fad3a1d3Sopenharmony_ci self.mutability.hash(state); 2149fad3a1d3Sopenharmony_ci self.colon_token.hash(state); 2150fad3a1d3Sopenharmony_ci self.ty.hash(state); 2151fad3a1d3Sopenharmony_ci } 2152fad3a1d3Sopenharmony_ci} 2153fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2154fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2155fad3a1d3Sopenharmony_ciimpl Hash for ReturnType { 2156fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2157fad3a1d3Sopenharmony_ci where 2158fad3a1d3Sopenharmony_ci H: Hasher, 2159fad3a1d3Sopenharmony_ci { 2160fad3a1d3Sopenharmony_ci match self { 2161fad3a1d3Sopenharmony_ci ReturnType::Default => { 2162fad3a1d3Sopenharmony_ci state.write_u8(0u8); 2163fad3a1d3Sopenharmony_ci } 2164fad3a1d3Sopenharmony_ci ReturnType::Type(_, v1) => { 2165fad3a1d3Sopenharmony_ci state.write_u8(1u8); 2166fad3a1d3Sopenharmony_ci v1.hash(state); 2167fad3a1d3Sopenharmony_ci } 2168fad3a1d3Sopenharmony_ci } 2169fad3a1d3Sopenharmony_ci } 2170fad3a1d3Sopenharmony_ci} 2171fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 2172fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2173fad3a1d3Sopenharmony_ciimpl Hash for Signature { 2174fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2175fad3a1d3Sopenharmony_ci where 2176fad3a1d3Sopenharmony_ci H: Hasher, 2177fad3a1d3Sopenharmony_ci { 2178fad3a1d3Sopenharmony_ci self.constness.hash(state); 2179fad3a1d3Sopenharmony_ci self.asyncness.hash(state); 2180fad3a1d3Sopenharmony_ci self.unsafety.hash(state); 2181fad3a1d3Sopenharmony_ci self.abi.hash(state); 2182fad3a1d3Sopenharmony_ci self.ident.hash(state); 2183fad3a1d3Sopenharmony_ci self.generics.hash(state); 2184fad3a1d3Sopenharmony_ci self.inputs.hash(state); 2185fad3a1d3Sopenharmony_ci self.variadic.hash(state); 2186fad3a1d3Sopenharmony_ci self.output.hash(state); 2187fad3a1d3Sopenharmony_ci } 2188fad3a1d3Sopenharmony_ci} 2189fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 2190fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2191fad3a1d3Sopenharmony_ciimpl Hash for StaticMutability { 2192fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2193fad3a1d3Sopenharmony_ci where 2194fad3a1d3Sopenharmony_ci H: Hasher, 2195fad3a1d3Sopenharmony_ci { 2196fad3a1d3Sopenharmony_ci match self { 2197fad3a1d3Sopenharmony_ci StaticMutability::Mut(_) => { 2198fad3a1d3Sopenharmony_ci state.write_u8(0u8); 2199fad3a1d3Sopenharmony_ci } 2200fad3a1d3Sopenharmony_ci StaticMutability::None => { 2201fad3a1d3Sopenharmony_ci state.write_u8(1u8); 2202fad3a1d3Sopenharmony_ci } 2203fad3a1d3Sopenharmony_ci } 2204fad3a1d3Sopenharmony_ci } 2205fad3a1d3Sopenharmony_ci} 2206fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 2207fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2208fad3a1d3Sopenharmony_ciimpl Hash for Stmt { 2209fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2210fad3a1d3Sopenharmony_ci where 2211fad3a1d3Sopenharmony_ci H: Hasher, 2212fad3a1d3Sopenharmony_ci { 2213fad3a1d3Sopenharmony_ci match self { 2214fad3a1d3Sopenharmony_ci Stmt::Local(v0) => { 2215fad3a1d3Sopenharmony_ci state.write_u8(0u8); 2216fad3a1d3Sopenharmony_ci v0.hash(state); 2217fad3a1d3Sopenharmony_ci } 2218fad3a1d3Sopenharmony_ci Stmt::Item(v0) => { 2219fad3a1d3Sopenharmony_ci state.write_u8(1u8); 2220fad3a1d3Sopenharmony_ci v0.hash(state); 2221fad3a1d3Sopenharmony_ci } 2222fad3a1d3Sopenharmony_ci Stmt::Expr(v0, v1) => { 2223fad3a1d3Sopenharmony_ci state.write_u8(2u8); 2224fad3a1d3Sopenharmony_ci v0.hash(state); 2225fad3a1d3Sopenharmony_ci v1.hash(state); 2226fad3a1d3Sopenharmony_ci } 2227fad3a1d3Sopenharmony_ci Stmt::Macro(v0) => { 2228fad3a1d3Sopenharmony_ci state.write_u8(3u8); 2229fad3a1d3Sopenharmony_ci v0.hash(state); 2230fad3a1d3Sopenharmony_ci } 2231fad3a1d3Sopenharmony_ci } 2232fad3a1d3Sopenharmony_ci } 2233fad3a1d3Sopenharmony_ci} 2234fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 2235fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2236fad3a1d3Sopenharmony_ciimpl Hash for StmtMacro { 2237fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2238fad3a1d3Sopenharmony_ci where 2239fad3a1d3Sopenharmony_ci H: Hasher, 2240fad3a1d3Sopenharmony_ci { 2241fad3a1d3Sopenharmony_ci self.attrs.hash(state); 2242fad3a1d3Sopenharmony_ci self.mac.hash(state); 2243fad3a1d3Sopenharmony_ci self.semi_token.hash(state); 2244fad3a1d3Sopenharmony_ci } 2245fad3a1d3Sopenharmony_ci} 2246fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2247fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2248fad3a1d3Sopenharmony_ciimpl Hash for TraitBound { 2249fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2250fad3a1d3Sopenharmony_ci where 2251fad3a1d3Sopenharmony_ci H: Hasher, 2252fad3a1d3Sopenharmony_ci { 2253fad3a1d3Sopenharmony_ci self.paren_token.hash(state); 2254fad3a1d3Sopenharmony_ci self.modifier.hash(state); 2255fad3a1d3Sopenharmony_ci self.lifetimes.hash(state); 2256fad3a1d3Sopenharmony_ci self.path.hash(state); 2257fad3a1d3Sopenharmony_ci } 2258fad3a1d3Sopenharmony_ci} 2259fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2260fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2261fad3a1d3Sopenharmony_ciimpl Hash for TraitBoundModifier { 2262fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2263fad3a1d3Sopenharmony_ci where 2264fad3a1d3Sopenharmony_ci H: Hasher, 2265fad3a1d3Sopenharmony_ci { 2266fad3a1d3Sopenharmony_ci match self { 2267fad3a1d3Sopenharmony_ci TraitBoundModifier::None => { 2268fad3a1d3Sopenharmony_ci state.write_u8(0u8); 2269fad3a1d3Sopenharmony_ci } 2270fad3a1d3Sopenharmony_ci TraitBoundModifier::Maybe(_) => { 2271fad3a1d3Sopenharmony_ci state.write_u8(1u8); 2272fad3a1d3Sopenharmony_ci } 2273fad3a1d3Sopenharmony_ci } 2274fad3a1d3Sopenharmony_ci } 2275fad3a1d3Sopenharmony_ci} 2276fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 2277fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2278fad3a1d3Sopenharmony_ciimpl Hash for TraitItem { 2279fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2280fad3a1d3Sopenharmony_ci where 2281fad3a1d3Sopenharmony_ci H: Hasher, 2282fad3a1d3Sopenharmony_ci { 2283fad3a1d3Sopenharmony_ci match self { 2284fad3a1d3Sopenharmony_ci TraitItem::Const(v0) => { 2285fad3a1d3Sopenharmony_ci state.write_u8(0u8); 2286fad3a1d3Sopenharmony_ci v0.hash(state); 2287fad3a1d3Sopenharmony_ci } 2288fad3a1d3Sopenharmony_ci TraitItem::Fn(v0) => { 2289fad3a1d3Sopenharmony_ci state.write_u8(1u8); 2290fad3a1d3Sopenharmony_ci v0.hash(state); 2291fad3a1d3Sopenharmony_ci } 2292fad3a1d3Sopenharmony_ci TraitItem::Type(v0) => { 2293fad3a1d3Sopenharmony_ci state.write_u8(2u8); 2294fad3a1d3Sopenharmony_ci v0.hash(state); 2295fad3a1d3Sopenharmony_ci } 2296fad3a1d3Sopenharmony_ci TraitItem::Macro(v0) => { 2297fad3a1d3Sopenharmony_ci state.write_u8(3u8); 2298fad3a1d3Sopenharmony_ci v0.hash(state); 2299fad3a1d3Sopenharmony_ci } 2300fad3a1d3Sopenharmony_ci TraitItem::Verbatim(v0) => { 2301fad3a1d3Sopenharmony_ci state.write_u8(4u8); 2302fad3a1d3Sopenharmony_ci TokenStreamHelper(v0).hash(state); 2303fad3a1d3Sopenharmony_ci } 2304fad3a1d3Sopenharmony_ci } 2305fad3a1d3Sopenharmony_ci } 2306fad3a1d3Sopenharmony_ci} 2307fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 2308fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2309fad3a1d3Sopenharmony_ciimpl Hash for TraitItemConst { 2310fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2311fad3a1d3Sopenharmony_ci where 2312fad3a1d3Sopenharmony_ci H: Hasher, 2313fad3a1d3Sopenharmony_ci { 2314fad3a1d3Sopenharmony_ci self.attrs.hash(state); 2315fad3a1d3Sopenharmony_ci self.ident.hash(state); 2316fad3a1d3Sopenharmony_ci self.generics.hash(state); 2317fad3a1d3Sopenharmony_ci self.ty.hash(state); 2318fad3a1d3Sopenharmony_ci self.default.hash(state); 2319fad3a1d3Sopenharmony_ci } 2320fad3a1d3Sopenharmony_ci} 2321fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 2322fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2323fad3a1d3Sopenharmony_ciimpl Hash for TraitItemFn { 2324fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2325fad3a1d3Sopenharmony_ci where 2326fad3a1d3Sopenharmony_ci H: Hasher, 2327fad3a1d3Sopenharmony_ci { 2328fad3a1d3Sopenharmony_ci self.attrs.hash(state); 2329fad3a1d3Sopenharmony_ci self.sig.hash(state); 2330fad3a1d3Sopenharmony_ci self.default.hash(state); 2331fad3a1d3Sopenharmony_ci self.semi_token.hash(state); 2332fad3a1d3Sopenharmony_ci } 2333fad3a1d3Sopenharmony_ci} 2334fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 2335fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2336fad3a1d3Sopenharmony_ciimpl Hash for TraitItemMacro { 2337fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2338fad3a1d3Sopenharmony_ci where 2339fad3a1d3Sopenharmony_ci H: Hasher, 2340fad3a1d3Sopenharmony_ci { 2341fad3a1d3Sopenharmony_ci self.attrs.hash(state); 2342fad3a1d3Sopenharmony_ci self.mac.hash(state); 2343fad3a1d3Sopenharmony_ci self.semi_token.hash(state); 2344fad3a1d3Sopenharmony_ci } 2345fad3a1d3Sopenharmony_ci} 2346fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 2347fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2348fad3a1d3Sopenharmony_ciimpl Hash for TraitItemType { 2349fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2350fad3a1d3Sopenharmony_ci where 2351fad3a1d3Sopenharmony_ci H: Hasher, 2352fad3a1d3Sopenharmony_ci { 2353fad3a1d3Sopenharmony_ci self.attrs.hash(state); 2354fad3a1d3Sopenharmony_ci self.ident.hash(state); 2355fad3a1d3Sopenharmony_ci self.generics.hash(state); 2356fad3a1d3Sopenharmony_ci self.colon_token.hash(state); 2357fad3a1d3Sopenharmony_ci self.bounds.hash(state); 2358fad3a1d3Sopenharmony_ci self.default.hash(state); 2359fad3a1d3Sopenharmony_ci } 2360fad3a1d3Sopenharmony_ci} 2361fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2362fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2363fad3a1d3Sopenharmony_ciimpl Hash for Type { 2364fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2365fad3a1d3Sopenharmony_ci where 2366fad3a1d3Sopenharmony_ci H: Hasher, 2367fad3a1d3Sopenharmony_ci { 2368fad3a1d3Sopenharmony_ci match self { 2369fad3a1d3Sopenharmony_ci Type::Array(v0) => { 2370fad3a1d3Sopenharmony_ci state.write_u8(0u8); 2371fad3a1d3Sopenharmony_ci v0.hash(state); 2372fad3a1d3Sopenharmony_ci } 2373fad3a1d3Sopenharmony_ci Type::BareFn(v0) => { 2374fad3a1d3Sopenharmony_ci state.write_u8(1u8); 2375fad3a1d3Sopenharmony_ci v0.hash(state); 2376fad3a1d3Sopenharmony_ci } 2377fad3a1d3Sopenharmony_ci Type::Group(v0) => { 2378fad3a1d3Sopenharmony_ci state.write_u8(2u8); 2379fad3a1d3Sopenharmony_ci v0.hash(state); 2380fad3a1d3Sopenharmony_ci } 2381fad3a1d3Sopenharmony_ci Type::ImplTrait(v0) => { 2382fad3a1d3Sopenharmony_ci state.write_u8(3u8); 2383fad3a1d3Sopenharmony_ci v0.hash(state); 2384fad3a1d3Sopenharmony_ci } 2385fad3a1d3Sopenharmony_ci Type::Infer(v0) => { 2386fad3a1d3Sopenharmony_ci state.write_u8(4u8); 2387fad3a1d3Sopenharmony_ci v0.hash(state); 2388fad3a1d3Sopenharmony_ci } 2389fad3a1d3Sopenharmony_ci Type::Macro(v0) => { 2390fad3a1d3Sopenharmony_ci state.write_u8(5u8); 2391fad3a1d3Sopenharmony_ci v0.hash(state); 2392fad3a1d3Sopenharmony_ci } 2393fad3a1d3Sopenharmony_ci Type::Never(v0) => { 2394fad3a1d3Sopenharmony_ci state.write_u8(6u8); 2395fad3a1d3Sopenharmony_ci v0.hash(state); 2396fad3a1d3Sopenharmony_ci } 2397fad3a1d3Sopenharmony_ci Type::Paren(v0) => { 2398fad3a1d3Sopenharmony_ci state.write_u8(7u8); 2399fad3a1d3Sopenharmony_ci v0.hash(state); 2400fad3a1d3Sopenharmony_ci } 2401fad3a1d3Sopenharmony_ci Type::Path(v0) => { 2402fad3a1d3Sopenharmony_ci state.write_u8(8u8); 2403fad3a1d3Sopenharmony_ci v0.hash(state); 2404fad3a1d3Sopenharmony_ci } 2405fad3a1d3Sopenharmony_ci Type::Ptr(v0) => { 2406fad3a1d3Sopenharmony_ci state.write_u8(9u8); 2407fad3a1d3Sopenharmony_ci v0.hash(state); 2408fad3a1d3Sopenharmony_ci } 2409fad3a1d3Sopenharmony_ci Type::Reference(v0) => { 2410fad3a1d3Sopenharmony_ci state.write_u8(10u8); 2411fad3a1d3Sopenharmony_ci v0.hash(state); 2412fad3a1d3Sopenharmony_ci } 2413fad3a1d3Sopenharmony_ci Type::Slice(v0) => { 2414fad3a1d3Sopenharmony_ci state.write_u8(11u8); 2415fad3a1d3Sopenharmony_ci v0.hash(state); 2416fad3a1d3Sopenharmony_ci } 2417fad3a1d3Sopenharmony_ci Type::TraitObject(v0) => { 2418fad3a1d3Sopenharmony_ci state.write_u8(12u8); 2419fad3a1d3Sopenharmony_ci v0.hash(state); 2420fad3a1d3Sopenharmony_ci } 2421fad3a1d3Sopenharmony_ci Type::Tuple(v0) => { 2422fad3a1d3Sopenharmony_ci state.write_u8(13u8); 2423fad3a1d3Sopenharmony_ci v0.hash(state); 2424fad3a1d3Sopenharmony_ci } 2425fad3a1d3Sopenharmony_ci Type::Verbatim(v0) => { 2426fad3a1d3Sopenharmony_ci state.write_u8(14u8); 2427fad3a1d3Sopenharmony_ci TokenStreamHelper(v0).hash(state); 2428fad3a1d3Sopenharmony_ci } 2429fad3a1d3Sopenharmony_ci } 2430fad3a1d3Sopenharmony_ci } 2431fad3a1d3Sopenharmony_ci} 2432fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2433fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2434fad3a1d3Sopenharmony_ciimpl Hash for TypeArray { 2435fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2436fad3a1d3Sopenharmony_ci where 2437fad3a1d3Sopenharmony_ci H: Hasher, 2438fad3a1d3Sopenharmony_ci { 2439fad3a1d3Sopenharmony_ci self.elem.hash(state); 2440fad3a1d3Sopenharmony_ci self.len.hash(state); 2441fad3a1d3Sopenharmony_ci } 2442fad3a1d3Sopenharmony_ci} 2443fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2444fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2445fad3a1d3Sopenharmony_ciimpl Hash for TypeBareFn { 2446fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2447fad3a1d3Sopenharmony_ci where 2448fad3a1d3Sopenharmony_ci H: Hasher, 2449fad3a1d3Sopenharmony_ci { 2450fad3a1d3Sopenharmony_ci self.lifetimes.hash(state); 2451fad3a1d3Sopenharmony_ci self.unsafety.hash(state); 2452fad3a1d3Sopenharmony_ci self.abi.hash(state); 2453fad3a1d3Sopenharmony_ci self.inputs.hash(state); 2454fad3a1d3Sopenharmony_ci self.variadic.hash(state); 2455fad3a1d3Sopenharmony_ci self.output.hash(state); 2456fad3a1d3Sopenharmony_ci } 2457fad3a1d3Sopenharmony_ci} 2458fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2459fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2460fad3a1d3Sopenharmony_ciimpl Hash for TypeGroup { 2461fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2462fad3a1d3Sopenharmony_ci where 2463fad3a1d3Sopenharmony_ci H: Hasher, 2464fad3a1d3Sopenharmony_ci { 2465fad3a1d3Sopenharmony_ci self.elem.hash(state); 2466fad3a1d3Sopenharmony_ci } 2467fad3a1d3Sopenharmony_ci} 2468fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2469fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2470fad3a1d3Sopenharmony_ciimpl Hash for TypeImplTrait { 2471fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2472fad3a1d3Sopenharmony_ci where 2473fad3a1d3Sopenharmony_ci H: Hasher, 2474fad3a1d3Sopenharmony_ci { 2475fad3a1d3Sopenharmony_ci self.bounds.hash(state); 2476fad3a1d3Sopenharmony_ci } 2477fad3a1d3Sopenharmony_ci} 2478fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2479fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2480fad3a1d3Sopenharmony_ciimpl Hash for TypeInfer { 2481fad3a1d3Sopenharmony_ci fn hash<H>(&self, _state: &mut H) 2482fad3a1d3Sopenharmony_ci where 2483fad3a1d3Sopenharmony_ci H: Hasher, 2484fad3a1d3Sopenharmony_ci {} 2485fad3a1d3Sopenharmony_ci} 2486fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2487fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2488fad3a1d3Sopenharmony_ciimpl Hash for TypeMacro { 2489fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2490fad3a1d3Sopenharmony_ci where 2491fad3a1d3Sopenharmony_ci H: Hasher, 2492fad3a1d3Sopenharmony_ci { 2493fad3a1d3Sopenharmony_ci self.mac.hash(state); 2494fad3a1d3Sopenharmony_ci } 2495fad3a1d3Sopenharmony_ci} 2496fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2497fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2498fad3a1d3Sopenharmony_ciimpl Hash for TypeNever { 2499fad3a1d3Sopenharmony_ci fn hash<H>(&self, _state: &mut H) 2500fad3a1d3Sopenharmony_ci where 2501fad3a1d3Sopenharmony_ci H: Hasher, 2502fad3a1d3Sopenharmony_ci {} 2503fad3a1d3Sopenharmony_ci} 2504fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2505fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2506fad3a1d3Sopenharmony_ciimpl Hash for TypeParam { 2507fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2508fad3a1d3Sopenharmony_ci where 2509fad3a1d3Sopenharmony_ci H: Hasher, 2510fad3a1d3Sopenharmony_ci { 2511fad3a1d3Sopenharmony_ci self.attrs.hash(state); 2512fad3a1d3Sopenharmony_ci self.ident.hash(state); 2513fad3a1d3Sopenharmony_ci self.colon_token.hash(state); 2514fad3a1d3Sopenharmony_ci self.bounds.hash(state); 2515fad3a1d3Sopenharmony_ci self.eq_token.hash(state); 2516fad3a1d3Sopenharmony_ci self.default.hash(state); 2517fad3a1d3Sopenharmony_ci } 2518fad3a1d3Sopenharmony_ci} 2519fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2520fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2521fad3a1d3Sopenharmony_ciimpl Hash for TypeParamBound { 2522fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2523fad3a1d3Sopenharmony_ci where 2524fad3a1d3Sopenharmony_ci H: Hasher, 2525fad3a1d3Sopenharmony_ci { 2526fad3a1d3Sopenharmony_ci match self { 2527fad3a1d3Sopenharmony_ci TypeParamBound::Trait(v0) => { 2528fad3a1d3Sopenharmony_ci state.write_u8(0u8); 2529fad3a1d3Sopenharmony_ci v0.hash(state); 2530fad3a1d3Sopenharmony_ci } 2531fad3a1d3Sopenharmony_ci TypeParamBound::Lifetime(v0) => { 2532fad3a1d3Sopenharmony_ci state.write_u8(1u8); 2533fad3a1d3Sopenharmony_ci v0.hash(state); 2534fad3a1d3Sopenharmony_ci } 2535fad3a1d3Sopenharmony_ci TypeParamBound::Verbatim(v0) => { 2536fad3a1d3Sopenharmony_ci state.write_u8(2u8); 2537fad3a1d3Sopenharmony_ci TokenStreamHelper(v0).hash(state); 2538fad3a1d3Sopenharmony_ci } 2539fad3a1d3Sopenharmony_ci } 2540fad3a1d3Sopenharmony_ci } 2541fad3a1d3Sopenharmony_ci} 2542fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2543fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2544fad3a1d3Sopenharmony_ciimpl Hash for TypeParen { 2545fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2546fad3a1d3Sopenharmony_ci where 2547fad3a1d3Sopenharmony_ci H: Hasher, 2548fad3a1d3Sopenharmony_ci { 2549fad3a1d3Sopenharmony_ci self.elem.hash(state); 2550fad3a1d3Sopenharmony_ci } 2551fad3a1d3Sopenharmony_ci} 2552fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2553fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2554fad3a1d3Sopenharmony_ciimpl Hash for TypePath { 2555fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2556fad3a1d3Sopenharmony_ci where 2557fad3a1d3Sopenharmony_ci H: Hasher, 2558fad3a1d3Sopenharmony_ci { 2559fad3a1d3Sopenharmony_ci self.qself.hash(state); 2560fad3a1d3Sopenharmony_ci self.path.hash(state); 2561fad3a1d3Sopenharmony_ci } 2562fad3a1d3Sopenharmony_ci} 2563fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2564fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2565fad3a1d3Sopenharmony_ciimpl Hash for TypePtr { 2566fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2567fad3a1d3Sopenharmony_ci where 2568fad3a1d3Sopenharmony_ci H: Hasher, 2569fad3a1d3Sopenharmony_ci { 2570fad3a1d3Sopenharmony_ci self.const_token.hash(state); 2571fad3a1d3Sopenharmony_ci self.mutability.hash(state); 2572fad3a1d3Sopenharmony_ci self.elem.hash(state); 2573fad3a1d3Sopenharmony_ci } 2574fad3a1d3Sopenharmony_ci} 2575fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2576fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2577fad3a1d3Sopenharmony_ciimpl Hash for TypeReference { 2578fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2579fad3a1d3Sopenharmony_ci where 2580fad3a1d3Sopenharmony_ci H: Hasher, 2581fad3a1d3Sopenharmony_ci { 2582fad3a1d3Sopenharmony_ci self.lifetime.hash(state); 2583fad3a1d3Sopenharmony_ci self.mutability.hash(state); 2584fad3a1d3Sopenharmony_ci self.elem.hash(state); 2585fad3a1d3Sopenharmony_ci } 2586fad3a1d3Sopenharmony_ci} 2587fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2588fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2589fad3a1d3Sopenharmony_ciimpl Hash for TypeSlice { 2590fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2591fad3a1d3Sopenharmony_ci where 2592fad3a1d3Sopenharmony_ci H: Hasher, 2593fad3a1d3Sopenharmony_ci { 2594fad3a1d3Sopenharmony_ci self.elem.hash(state); 2595fad3a1d3Sopenharmony_ci } 2596fad3a1d3Sopenharmony_ci} 2597fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2598fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2599fad3a1d3Sopenharmony_ciimpl Hash for TypeTraitObject { 2600fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2601fad3a1d3Sopenharmony_ci where 2602fad3a1d3Sopenharmony_ci H: Hasher, 2603fad3a1d3Sopenharmony_ci { 2604fad3a1d3Sopenharmony_ci self.dyn_token.hash(state); 2605fad3a1d3Sopenharmony_ci self.bounds.hash(state); 2606fad3a1d3Sopenharmony_ci } 2607fad3a1d3Sopenharmony_ci} 2608fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2609fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2610fad3a1d3Sopenharmony_ciimpl Hash for TypeTuple { 2611fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2612fad3a1d3Sopenharmony_ci where 2613fad3a1d3Sopenharmony_ci H: Hasher, 2614fad3a1d3Sopenharmony_ci { 2615fad3a1d3Sopenharmony_ci self.elems.hash(state); 2616fad3a1d3Sopenharmony_ci } 2617fad3a1d3Sopenharmony_ci} 2618fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2619fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2620fad3a1d3Sopenharmony_ciimpl Hash for UnOp { 2621fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2622fad3a1d3Sopenharmony_ci where 2623fad3a1d3Sopenharmony_ci H: Hasher, 2624fad3a1d3Sopenharmony_ci { 2625fad3a1d3Sopenharmony_ci match self { 2626fad3a1d3Sopenharmony_ci UnOp::Deref(_) => { 2627fad3a1d3Sopenharmony_ci state.write_u8(0u8); 2628fad3a1d3Sopenharmony_ci } 2629fad3a1d3Sopenharmony_ci UnOp::Not(_) => { 2630fad3a1d3Sopenharmony_ci state.write_u8(1u8); 2631fad3a1d3Sopenharmony_ci } 2632fad3a1d3Sopenharmony_ci UnOp::Neg(_) => { 2633fad3a1d3Sopenharmony_ci state.write_u8(2u8); 2634fad3a1d3Sopenharmony_ci } 2635fad3a1d3Sopenharmony_ci } 2636fad3a1d3Sopenharmony_ci } 2637fad3a1d3Sopenharmony_ci} 2638fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 2639fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2640fad3a1d3Sopenharmony_ciimpl Hash for UseGlob { 2641fad3a1d3Sopenharmony_ci fn hash<H>(&self, _state: &mut H) 2642fad3a1d3Sopenharmony_ci where 2643fad3a1d3Sopenharmony_ci H: Hasher, 2644fad3a1d3Sopenharmony_ci {} 2645fad3a1d3Sopenharmony_ci} 2646fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 2647fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2648fad3a1d3Sopenharmony_ciimpl Hash for UseGroup { 2649fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2650fad3a1d3Sopenharmony_ci where 2651fad3a1d3Sopenharmony_ci H: Hasher, 2652fad3a1d3Sopenharmony_ci { 2653fad3a1d3Sopenharmony_ci self.items.hash(state); 2654fad3a1d3Sopenharmony_ci } 2655fad3a1d3Sopenharmony_ci} 2656fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 2657fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2658fad3a1d3Sopenharmony_ciimpl Hash for UseName { 2659fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2660fad3a1d3Sopenharmony_ci where 2661fad3a1d3Sopenharmony_ci H: Hasher, 2662fad3a1d3Sopenharmony_ci { 2663fad3a1d3Sopenharmony_ci self.ident.hash(state); 2664fad3a1d3Sopenharmony_ci } 2665fad3a1d3Sopenharmony_ci} 2666fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 2667fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2668fad3a1d3Sopenharmony_ciimpl Hash for UsePath { 2669fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2670fad3a1d3Sopenharmony_ci where 2671fad3a1d3Sopenharmony_ci H: Hasher, 2672fad3a1d3Sopenharmony_ci { 2673fad3a1d3Sopenharmony_ci self.ident.hash(state); 2674fad3a1d3Sopenharmony_ci self.tree.hash(state); 2675fad3a1d3Sopenharmony_ci } 2676fad3a1d3Sopenharmony_ci} 2677fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 2678fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2679fad3a1d3Sopenharmony_ciimpl Hash for UseRename { 2680fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2681fad3a1d3Sopenharmony_ci where 2682fad3a1d3Sopenharmony_ci H: Hasher, 2683fad3a1d3Sopenharmony_ci { 2684fad3a1d3Sopenharmony_ci self.ident.hash(state); 2685fad3a1d3Sopenharmony_ci self.rename.hash(state); 2686fad3a1d3Sopenharmony_ci } 2687fad3a1d3Sopenharmony_ci} 2688fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 2689fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2690fad3a1d3Sopenharmony_ciimpl Hash for UseTree { 2691fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2692fad3a1d3Sopenharmony_ci where 2693fad3a1d3Sopenharmony_ci H: Hasher, 2694fad3a1d3Sopenharmony_ci { 2695fad3a1d3Sopenharmony_ci match self { 2696fad3a1d3Sopenharmony_ci UseTree::Path(v0) => { 2697fad3a1d3Sopenharmony_ci state.write_u8(0u8); 2698fad3a1d3Sopenharmony_ci v0.hash(state); 2699fad3a1d3Sopenharmony_ci } 2700fad3a1d3Sopenharmony_ci UseTree::Name(v0) => { 2701fad3a1d3Sopenharmony_ci state.write_u8(1u8); 2702fad3a1d3Sopenharmony_ci v0.hash(state); 2703fad3a1d3Sopenharmony_ci } 2704fad3a1d3Sopenharmony_ci UseTree::Rename(v0) => { 2705fad3a1d3Sopenharmony_ci state.write_u8(2u8); 2706fad3a1d3Sopenharmony_ci v0.hash(state); 2707fad3a1d3Sopenharmony_ci } 2708fad3a1d3Sopenharmony_ci UseTree::Glob(v0) => { 2709fad3a1d3Sopenharmony_ci state.write_u8(3u8); 2710fad3a1d3Sopenharmony_ci v0.hash(state); 2711fad3a1d3Sopenharmony_ci } 2712fad3a1d3Sopenharmony_ci UseTree::Group(v0) => { 2713fad3a1d3Sopenharmony_ci state.write_u8(4u8); 2714fad3a1d3Sopenharmony_ci v0.hash(state); 2715fad3a1d3Sopenharmony_ci } 2716fad3a1d3Sopenharmony_ci } 2717fad3a1d3Sopenharmony_ci } 2718fad3a1d3Sopenharmony_ci} 2719fad3a1d3Sopenharmony_ci#[cfg(feature = "full")] 2720fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2721fad3a1d3Sopenharmony_ciimpl Hash for Variadic { 2722fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2723fad3a1d3Sopenharmony_ci where 2724fad3a1d3Sopenharmony_ci H: Hasher, 2725fad3a1d3Sopenharmony_ci { 2726fad3a1d3Sopenharmony_ci self.attrs.hash(state); 2727fad3a1d3Sopenharmony_ci self.pat.hash(state); 2728fad3a1d3Sopenharmony_ci self.comma.hash(state); 2729fad3a1d3Sopenharmony_ci } 2730fad3a1d3Sopenharmony_ci} 2731fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2732fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2733fad3a1d3Sopenharmony_ciimpl Hash for Variant { 2734fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2735fad3a1d3Sopenharmony_ci where 2736fad3a1d3Sopenharmony_ci H: Hasher, 2737fad3a1d3Sopenharmony_ci { 2738fad3a1d3Sopenharmony_ci self.attrs.hash(state); 2739fad3a1d3Sopenharmony_ci self.ident.hash(state); 2740fad3a1d3Sopenharmony_ci self.fields.hash(state); 2741fad3a1d3Sopenharmony_ci self.discriminant.hash(state); 2742fad3a1d3Sopenharmony_ci } 2743fad3a1d3Sopenharmony_ci} 2744fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2745fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2746fad3a1d3Sopenharmony_ciimpl Hash for VisRestricted { 2747fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2748fad3a1d3Sopenharmony_ci where 2749fad3a1d3Sopenharmony_ci H: Hasher, 2750fad3a1d3Sopenharmony_ci { 2751fad3a1d3Sopenharmony_ci self.in_token.hash(state); 2752fad3a1d3Sopenharmony_ci self.path.hash(state); 2753fad3a1d3Sopenharmony_ci } 2754fad3a1d3Sopenharmony_ci} 2755fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2756fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2757fad3a1d3Sopenharmony_ciimpl Hash for Visibility { 2758fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2759fad3a1d3Sopenharmony_ci where 2760fad3a1d3Sopenharmony_ci H: Hasher, 2761fad3a1d3Sopenharmony_ci { 2762fad3a1d3Sopenharmony_ci match self { 2763fad3a1d3Sopenharmony_ci Visibility::Public(_) => { 2764fad3a1d3Sopenharmony_ci state.write_u8(0u8); 2765fad3a1d3Sopenharmony_ci } 2766fad3a1d3Sopenharmony_ci Visibility::Restricted(v0) => { 2767fad3a1d3Sopenharmony_ci state.write_u8(1u8); 2768fad3a1d3Sopenharmony_ci v0.hash(state); 2769fad3a1d3Sopenharmony_ci } 2770fad3a1d3Sopenharmony_ci Visibility::Inherited => { 2771fad3a1d3Sopenharmony_ci state.write_u8(2u8); 2772fad3a1d3Sopenharmony_ci } 2773fad3a1d3Sopenharmony_ci } 2774fad3a1d3Sopenharmony_ci } 2775fad3a1d3Sopenharmony_ci} 2776fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2777fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2778fad3a1d3Sopenharmony_ciimpl Hash for WhereClause { 2779fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2780fad3a1d3Sopenharmony_ci where 2781fad3a1d3Sopenharmony_ci H: Hasher, 2782fad3a1d3Sopenharmony_ci { 2783fad3a1d3Sopenharmony_ci self.predicates.hash(state); 2784fad3a1d3Sopenharmony_ci } 2785fad3a1d3Sopenharmony_ci} 2786fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))] 2787fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "extra-traits")))] 2788fad3a1d3Sopenharmony_ciimpl Hash for WherePredicate { 2789fad3a1d3Sopenharmony_ci fn hash<H>(&self, state: &mut H) 2790fad3a1d3Sopenharmony_ci where 2791fad3a1d3Sopenharmony_ci H: Hasher, 2792fad3a1d3Sopenharmony_ci { 2793fad3a1d3Sopenharmony_ci match self { 2794fad3a1d3Sopenharmony_ci WherePredicate::Lifetime(v0) => { 2795fad3a1d3Sopenharmony_ci state.write_u8(0u8); 2796fad3a1d3Sopenharmony_ci v0.hash(state); 2797fad3a1d3Sopenharmony_ci } 2798fad3a1d3Sopenharmony_ci WherePredicate::Type(v0) => { 2799fad3a1d3Sopenharmony_ci state.write_u8(1u8); 2800fad3a1d3Sopenharmony_ci v0.hash(state); 2801fad3a1d3Sopenharmony_ci } 2802fad3a1d3Sopenharmony_ci } 2803fad3a1d3Sopenharmony_ci } 2804fad3a1d3Sopenharmony_ci} 2805