File Index
Files and directories
Sign in
FILE

clone.rs

File preview with syntax highlighting.

linux-6.19.14/rust/syn/gen/clone.rs RUST
   1// SPDX-License-Identifier: Apache-2.0 OR MIT
   2
   3// This file is @generated by syn-internal-codegen.
   4// It is not intended for manual editing.
   5
   6#![allow(clippy::clone_on_copy, clippy::expl_impl_clone_on_copy)]
   7#[cfg(any(feature = "derive", feature = "full"))]
   8#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
   9impl Clone for crate::Abi {
  10    fn clone(&self) -> Self {
  11        crate::Abi {
  12            extern_token: self.extern_token.clone(),
  13            name: self.name.clone(),
  14        }
  15    }
  16}
  17#[cfg(any(feature = "derive", feature = "full"))]
  18#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
  19impl Clone for crate::AngleBracketedGenericArguments {
  20    fn clone(&self) -> Self {
  21        crate::AngleBracketedGenericArguments {
  22            colon2_token: self.colon2_token.clone(),
  23            lt_token: self.lt_token.clone(),
  24            args: self.args.clone(),
  25            gt_token: self.gt_token.clone(),
  26        }
  27    }
  28}
  29#[cfg(feature = "full")]
  30#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
  31impl Clone for crate::Arm {
  32    fn clone(&self) -> Self {
  33        crate::Arm {
  34            attrs: self.attrs.clone(),
  35            pat: self.pat.clone(),
  36            guard: self.guard.clone(),
  37            fat_arrow_token: self.fat_arrow_token.clone(),
  38            body: self.body.clone(),
  39            comma: self.comma.clone(),
  40        }
  41    }
  42}
  43#[cfg(any(feature = "derive", feature = "full"))]
  44#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
  45impl Clone for crate::AssocConst {
  46    fn clone(&self) -> Self {
  47        crate::AssocConst {
  48            ident: self.ident.clone(),
  49            generics: self.generics.clone(),
  50            eq_token: self.eq_token.clone(),
  51            value: self.value.clone(),
  52        }
  53    }
  54}
  55#[cfg(any(feature = "derive", feature = "full"))]
  56#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
  57impl Clone for crate::AssocType {
  58    fn clone(&self) -> Self {
  59        crate::AssocType {
  60            ident: self.ident.clone(),
  61            generics: self.generics.clone(),
  62            eq_token: self.eq_token.clone(),
  63            ty: self.ty.clone(),
  64        }
  65    }
  66}
  67#[cfg(any(feature = "derive", feature = "full"))]
  68#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
  69impl Copy for crate::AttrStyle {}
  70#[cfg(any(feature = "derive", feature = "full"))]
  71#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
  72impl Clone for crate::AttrStyle {
  73    fn clone(&self) -> Self {
  74        *self
  75    }
  76}
  77#[cfg(any(feature = "derive", feature = "full"))]
  78#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
  79impl Clone for crate::Attribute {
  80    fn clone(&self) -> Self {
  81        crate::Attribute {
  82            pound_token: self.pound_token.clone(),
  83            style: self.style.clone(),
  84            bracket_token: self.bracket_token.clone(),
  85            meta: self.meta.clone(),
  86        }
  87    }
  88}
  89#[cfg(any(feature = "derive", feature = "full"))]
  90#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
  91impl Clone for crate::BareFnArg {
  92    fn clone(&self) -> Self {
  93        crate::BareFnArg {
  94            attrs: self.attrs.clone(),
  95            name: self.name.clone(),
  96            ty: self.ty.clone(),
  97        }
  98    }
  99}
 100#[cfg(any(feature = "derive", feature = "full"))]
 101#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 102impl Clone for crate::BareVariadic {
 103    fn clone(&self) -> Self {
 104        crate::BareVariadic {
 105            attrs: self.attrs.clone(),
 106            name: self.name.clone(),
 107            dots: self.dots.clone(),
 108            comma: self.comma.clone(),
 109        }
 110    }
 111}
 112#[cfg(any(feature = "derive", feature = "full"))]
 113#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 114impl Copy for crate::BinOp {}
 115#[cfg(any(feature = "derive", feature = "full"))]
 116#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 117impl Clone for crate::BinOp {
 118    fn clone(&self) -> Self {
 119        *self
 120    }
 121}
 122#[cfg(feature = "full")]
 123#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 124impl Clone for crate::Block {
 125    fn clone(&self) -> Self {
 126        crate::Block {
 127            brace_token: self.brace_token.clone(),
 128            stmts: self.stmts.clone(),
 129        }
 130    }
 131}
 132#[cfg(any(feature = "derive", feature = "full"))]
 133#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 134impl Clone for crate::BoundLifetimes {
 135    fn clone(&self) -> Self {
 136        crate::BoundLifetimes {
 137            for_token: self.for_token.clone(),
 138            lt_token: self.lt_token.clone(),
 139            lifetimes: self.lifetimes.clone(),
 140            gt_token: self.gt_token.clone(),
 141        }
 142    }
 143}
 144#[cfg(feature = "full")]
 145#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 146impl Clone for crate::CapturedParam {
 147    fn clone(&self) -> Self {
 148        match self {
 149            crate::CapturedParam::Lifetime(v0) => {
 150                crate::CapturedParam::Lifetime(v0.clone())
 151            }
 152            crate::CapturedParam::Ident(v0) => crate::CapturedParam::Ident(v0.clone()),
 153        }
 154    }
 155}
 156#[cfg(any(feature = "derive", feature = "full"))]
 157#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 158impl Clone for crate::ConstParam {
 159    fn clone(&self) -> Self {
 160        crate::ConstParam {
 161            attrs: self.attrs.clone(),
 162            const_token: self.const_token.clone(),
 163            ident: self.ident.clone(),
 164            colon_token: self.colon_token.clone(),
 165            ty: self.ty.clone(),
 166            eq_token: self.eq_token.clone(),
 167            default: self.default.clone(),
 168        }
 169    }
 170}
 171#[cfg(any(feature = "derive", feature = "full"))]
 172#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 173impl Clone for crate::Constraint {
 174    fn clone(&self) -> Self {
 175        crate::Constraint {
 176            ident: self.ident.clone(),
 177            generics: self.generics.clone(),
 178            colon_token: self.colon_token.clone(),
 179            bounds: self.bounds.clone(),
 180        }
 181    }
 182}
 183#[cfg(feature = "derive")]
 184#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 185impl Clone for crate::Data {
 186    fn clone(&self) -> Self {
 187        match self {
 188            crate::Data::Struct(v0) => crate::Data::Struct(v0.clone()),
 189            crate::Data::Enum(v0) => crate::Data::Enum(v0.clone()),
 190            crate::Data::Union(v0) => crate::Data::Union(v0.clone()),
 191        }
 192    }
 193}
 194#[cfg(feature = "derive")]
 195#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 196impl Clone for crate::DataEnum {
 197    fn clone(&self) -> Self {
 198        crate::DataEnum {
 199            enum_token: self.enum_token.clone(),
 200            brace_token: self.brace_token.clone(),
 201            variants: self.variants.clone(),
 202        }
 203    }
 204}
 205#[cfg(feature = "derive")]
 206#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 207impl Clone for crate::DataStruct {
 208    fn clone(&self) -> Self {
 209        crate::DataStruct {
 210            struct_token: self.struct_token.clone(),
 211            fields: self.fields.clone(),
 212            semi_token: self.semi_token.clone(),
 213        }
 214    }
 215}
 216#[cfg(feature = "derive")]
 217#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 218impl Clone for crate::DataUnion {
 219    fn clone(&self) -> Self {
 220        crate::DataUnion {
 221            union_token: self.union_token.clone(),
 222            fields: self.fields.clone(),
 223        }
 224    }
 225}
 226#[cfg(feature = "derive")]
 227#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 228impl Clone for crate::DeriveInput {
 229    fn clone(&self) -> Self {
 230        crate::DeriveInput {
 231            attrs: self.attrs.clone(),
 232            vis: self.vis.clone(),
 233            ident: self.ident.clone(),
 234            generics: self.generics.clone(),
 235            data: self.data.clone(),
 236        }
 237    }
 238}
 239#[cfg(any(feature = "derive", feature = "full"))]
 240#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 241impl Clone for crate::Expr {
 242    fn clone(&self) -> Self {
 243        match self {
 244            #[cfg(feature = "full")]
 245            crate::Expr::Array(v0) => crate::Expr::Array(v0.clone()),
 246            #[cfg(feature = "full")]
 247            crate::Expr::Assign(v0) => crate::Expr::Assign(v0.clone()),
 248            #[cfg(feature = "full")]
 249            crate::Expr::Async(v0) => crate::Expr::Async(v0.clone()),
 250            #[cfg(feature = "full")]
 251            crate::Expr::Await(v0) => crate::Expr::Await(v0.clone()),
 252            crate::Expr::Binary(v0) => crate::Expr::Binary(v0.clone()),
 253            #[cfg(feature = "full")]
 254            crate::Expr::Block(v0) => crate::Expr::Block(v0.clone()),
 255            #[cfg(feature = "full")]
 256            crate::Expr::Break(v0) => crate::Expr::Break(v0.clone()),
 257            crate::Expr::Call(v0) => crate::Expr::Call(v0.clone()),
 258            crate::Expr::Cast(v0) => crate::Expr::Cast(v0.clone()),
 259            #[cfg(feature = "full")]
 260            crate::Expr::Closure(v0) => crate::Expr::Closure(v0.clone()),
 261            #[cfg(feature = "full")]
 262            crate::Expr::Const(v0) => crate::Expr::Const(v0.clone()),
 263            #[cfg(feature = "full")]
 264            crate::Expr::Continue(v0) => crate::Expr::Continue(v0.clone()),
 265            crate::Expr::Field(v0) => crate::Expr::Field(v0.clone()),
 266            #[cfg(feature = "full")]
 267            crate::Expr::ForLoop(v0) => crate::Expr::ForLoop(v0.clone()),
 268            crate::Expr::Group(v0) => crate::Expr::Group(v0.clone()),
 269            #[cfg(feature = "full")]
 270            crate::Expr::If(v0) => crate::Expr::If(v0.clone()),
 271            crate::Expr::Index(v0) => crate::Expr::Index(v0.clone()),
 272            #[cfg(feature = "full")]
 273            crate::Expr::Infer(v0) => crate::Expr::Infer(v0.clone()),
 274            #[cfg(feature = "full")]
 275            crate::Expr::Let(v0) => crate::Expr::Let(v0.clone()),
 276            crate::Expr::Lit(v0) => crate::Expr::Lit(v0.clone()),
 277            #[cfg(feature = "full")]
 278            crate::Expr::Loop(v0) => crate::Expr::Loop(v0.clone()),
 279            crate::Expr::Macro(v0) => crate::Expr::Macro(v0.clone()),
 280            #[cfg(feature = "full")]
 281            crate::Expr::Match(v0) => crate::Expr::Match(v0.clone()),
 282            crate::Expr::MethodCall(v0) => crate::Expr::MethodCall(v0.clone()),
 283            crate::Expr::Paren(v0) => crate::Expr::Paren(v0.clone()),
 284            crate::Expr::Path(v0) => crate::Expr::Path(v0.clone()),
 285            #[cfg(feature = "full")]
 286            crate::Expr::Range(v0) => crate::Expr::Range(v0.clone()),
 287            #[cfg(feature = "full")]
 288            crate::Expr::RawAddr(v0) => crate::Expr::RawAddr(v0.clone()),
 289            crate::Expr::Reference(v0) => crate::Expr::Reference(v0.clone()),
 290            #[cfg(feature = "full")]
 291            crate::Expr::Repeat(v0) => crate::Expr::Repeat(v0.clone()),
 292            #[cfg(feature = "full")]
 293            crate::Expr::Return(v0) => crate::Expr::Return(v0.clone()),
 294            crate::Expr::Struct(v0) => crate::Expr::Struct(v0.clone()),
 295            #[cfg(feature = "full")]
 296            crate::Expr::Try(v0) => crate::Expr::Try(v0.clone()),
 297            #[cfg(feature = "full")]
 298            crate::Expr::TryBlock(v0) => crate::Expr::TryBlock(v0.clone()),
 299            crate::Expr::Tuple(v0) => crate::Expr::Tuple(v0.clone()),
 300            crate::Expr::Unary(v0) => crate::Expr::Unary(v0.clone()),
 301            #[cfg(feature = "full")]
 302            crate::Expr::Unsafe(v0) => crate::Expr::Unsafe(v0.clone()),
 303            crate::Expr::Verbatim(v0) => crate::Expr::Verbatim(v0.clone()),
 304            #[cfg(feature = "full")]
 305            crate::Expr::While(v0) => crate::Expr::While(v0.clone()),
 306            #[cfg(feature = "full")]
 307            crate::Expr::Yield(v0) => crate::Expr::Yield(v0.clone()),
 308            #[cfg(not(feature = "full"))]
 309            _ => unreachable!(),
 310        }
 311    }
 312}
 313#[cfg(feature = "full")]
 314#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 315impl Clone for crate::ExprArray {
 316    fn clone(&self) -> Self {
 317        crate::ExprArray {
 318            attrs: self.attrs.clone(),
 319            bracket_token: self.bracket_token.clone(),
 320            elems: self.elems.clone(),
 321        }
 322    }
 323}
 324#[cfg(feature = "full")]
 325#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 326impl Clone for crate::ExprAssign {
 327    fn clone(&self) -> Self {
 328        crate::ExprAssign {
 329            attrs: self.attrs.clone(),
 330            left: self.left.clone(),
 331            eq_token: self.eq_token.clone(),
 332            right: self.right.clone(),
 333        }
 334    }
 335}
 336#[cfg(feature = "full")]
 337#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 338impl Clone for crate::ExprAsync {
 339    fn clone(&self) -> Self {
 340        crate::ExprAsync {
 341            attrs: self.attrs.clone(),
 342            async_token: self.async_token.clone(),
 343            capture: self.capture.clone(),
 344            block: self.block.clone(),
 345        }
 346    }
 347}
 348#[cfg(feature = "full")]
 349#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 350impl Clone for crate::ExprAwait {
 351    fn clone(&self) -> Self {
 352        crate::ExprAwait {
 353            attrs: self.attrs.clone(),
 354            base: self.base.clone(),
 355            dot_token: self.dot_token.clone(),
 356            await_token: self.await_token.clone(),
 357        }
 358    }
 359}
 360#[cfg(any(feature = "derive", feature = "full"))]
 361#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 362impl Clone for crate::ExprBinary {
 363    fn clone(&self) -> Self {
 364        crate::ExprBinary {
 365            attrs: self.attrs.clone(),
 366            left: self.left.clone(),
 367            op: self.op.clone(),
 368            right: self.right.clone(),
 369        }
 370    }
 371}
 372#[cfg(feature = "full")]
 373#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 374impl Clone for crate::ExprBlock {
 375    fn clone(&self) -> Self {
 376        crate::ExprBlock {
 377            attrs: self.attrs.clone(),
 378            label: self.label.clone(),
 379            block: self.block.clone(),
 380        }
 381    }
 382}
 383#[cfg(feature = "full")]
 384#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 385impl Clone for crate::ExprBreak {
 386    fn clone(&self) -> Self {
 387        crate::ExprBreak {
 388            attrs: self.attrs.clone(),
 389            break_token: self.break_token.clone(),
 390            label: self.label.clone(),
 391            expr: self.expr.clone(),
 392        }
 393    }
 394}
 395#[cfg(any(feature = "derive", feature = "full"))]
 396#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 397impl Clone for crate::ExprCall {
 398    fn clone(&self) -> Self {
 399        crate::ExprCall {
 400            attrs: self.attrs.clone(),
 401            func: self.func.clone(),
 402            paren_token: self.paren_token.clone(),
 403            args: self.args.clone(),
 404        }
 405    }
 406}
 407#[cfg(any(feature = "derive", feature = "full"))]
 408#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 409impl Clone for crate::ExprCast {
 410    fn clone(&self) -> Self {
 411        crate::ExprCast {
 412            attrs: self.attrs.clone(),
 413            expr: self.expr.clone(),
 414            as_token: self.as_token.clone(),
 415            ty: self.ty.clone(),
 416        }
 417    }
 418}
 419#[cfg(feature = "full")]
 420#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 421impl Clone for crate::ExprClosure {
 422    fn clone(&self) -> Self {
 423        crate::ExprClosure {
 424            attrs: self.attrs.clone(),
 425            lifetimes: self.lifetimes.clone(),
 426            constness: self.constness.clone(),
 427            movability: self.movability.clone(),
 428            asyncness: self.asyncness.clone(),
 429            capture: self.capture.clone(),
 430            or1_token: self.or1_token.clone(),
 431            inputs: self.inputs.clone(),
 432            or2_token: self.or2_token.clone(),
 433            output: self.output.clone(),
 434            body: self.body.clone(),
 435        }
 436    }
 437}
 438#[cfg(feature = "full")]
 439#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 440impl Clone for crate::ExprConst {
 441    fn clone(&self) -> Self {
 442        crate::ExprConst {
 443            attrs: self.attrs.clone(),
 444            const_token: self.const_token.clone(),
 445            block: self.block.clone(),
 446        }
 447    }
 448}
 449#[cfg(feature = "full")]
 450#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 451impl Clone for crate::ExprContinue {
 452    fn clone(&self) -> Self {
 453        crate::ExprContinue {
 454            attrs: self.attrs.clone(),
 455            continue_token: self.continue_token.clone(),
 456            label: self.label.clone(),
 457        }
 458    }
 459}
 460#[cfg(any(feature = "derive", feature = "full"))]
 461#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 462impl Clone for crate::ExprField {
 463    fn clone(&self) -> Self {
 464        crate::ExprField {
 465            attrs: self.attrs.clone(),
 466            base: self.base.clone(),
 467            dot_token: self.dot_token.clone(),
 468            member: self.member.clone(),
 469        }
 470    }
 471}
 472#[cfg(feature = "full")]
 473#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 474impl Clone for crate::ExprForLoop {
 475    fn clone(&self) -> Self {
 476        crate::ExprForLoop {
 477            attrs: self.attrs.clone(),
 478            label: self.label.clone(),
 479            for_token: self.for_token.clone(),
 480            pat: self.pat.clone(),
 481            in_token: self.in_token.clone(),
 482            expr: self.expr.clone(),
 483            body: self.body.clone(),
 484        }
 485    }
 486}
 487#[cfg(any(feature = "derive", feature = "full"))]
 488#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 489impl Clone for crate::ExprGroup {
 490    fn clone(&self) -> Self {
 491        crate::ExprGroup {
 492            attrs: self.attrs.clone(),
 493            group_token: self.group_token.clone(),
 494            expr: self.expr.clone(),
 495        }
 496    }
 497}
 498#[cfg(feature = "full")]
 499#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 500impl Clone for crate::ExprIf {
 501    fn clone(&self) -> Self {
 502        crate::ExprIf {
 503            attrs: self.attrs.clone(),
 504            if_token: self.if_token.clone(),
 505            cond: self.cond.clone(),
 506            then_branch: self.then_branch.clone(),
 507            else_branch: self.else_branch.clone(),
 508        }
 509    }
 510}
 511#[cfg(any(feature = "derive", feature = "full"))]
 512#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 513impl Clone for crate::ExprIndex {
 514    fn clone(&self) -> Self {
 515        crate::ExprIndex {
 516            attrs: self.attrs.clone(),
 517            expr: self.expr.clone(),
 518            bracket_token: self.bracket_token.clone(),
 519            index: self.index.clone(),
 520        }
 521    }
 522}
 523#[cfg(feature = "full")]
 524#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 525impl Clone for crate::ExprInfer {
 526    fn clone(&self) -> Self {
 527        crate::ExprInfer {
 528            attrs: self.attrs.clone(),
 529            underscore_token: self.underscore_token.clone(),
 530        }
 531    }
 532}
 533#[cfg(feature = "full")]
 534#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 535impl Clone for crate::ExprLet {
 536    fn clone(&self) -> Self {
 537        crate::ExprLet {
 538            attrs: self.attrs.clone(),
 539            let_token: self.let_token.clone(),
 540            pat: self.pat.clone(),
 541            eq_token: self.eq_token.clone(),
 542            expr: self.expr.clone(),
 543        }
 544    }
 545}
 546#[cfg(any(feature = "derive", feature = "full"))]
 547#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 548impl Clone for crate::ExprLit {
 549    fn clone(&self) -> Self {
 550        crate::ExprLit {
 551            attrs: self.attrs.clone(),
 552            lit: self.lit.clone(),
 553        }
 554    }
 555}
 556#[cfg(feature = "full")]
 557#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 558impl Clone for crate::ExprLoop {
 559    fn clone(&self) -> Self {
 560        crate::ExprLoop {
 561            attrs: self.attrs.clone(),
 562            label: self.label.clone(),
 563            loop_token: self.loop_token.clone(),
 564            body: self.body.clone(),
 565        }
 566    }
 567}
 568#[cfg(any(feature = "derive", feature = "full"))]
 569#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 570impl Clone for crate::ExprMacro {
 571    fn clone(&self) -> Self {
 572        crate::ExprMacro {
 573            attrs: self.attrs.clone(),
 574            mac: self.mac.clone(),
 575        }
 576    }
 577}
 578#[cfg(feature = "full")]
 579#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 580impl Clone for crate::ExprMatch {
 581    fn clone(&self) -> Self {
 582        crate::ExprMatch {
 583            attrs: self.attrs.clone(),
 584            match_token: self.match_token.clone(),
 585            expr: self.expr.clone(),
 586            brace_token: self.brace_token.clone(),
 587            arms: self.arms.clone(),
 588        }
 589    }
 590}
 591#[cfg(any(feature = "derive", feature = "full"))]
 592#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 593impl Clone for crate::ExprMethodCall {
 594    fn clone(&self) -> Self {
 595        crate::ExprMethodCall {
 596            attrs: self.attrs.clone(),
 597            receiver: self.receiver.clone(),
 598            dot_token: self.dot_token.clone(),
 599            method: self.method.clone(),
 600            turbofish: self.turbofish.clone(),
 601            paren_token: self.paren_token.clone(),
 602            args: self.args.clone(),
 603        }
 604    }
 605}
 606#[cfg(any(feature = "derive", feature = "full"))]
 607#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 608impl Clone for crate::ExprParen {
 609    fn clone(&self) -> Self {
 610        crate::ExprParen {
 611            attrs: self.attrs.clone(),
 612            paren_token: self.paren_token.clone(),
 613            expr: self.expr.clone(),
 614        }
 615    }
 616}
 617#[cfg(any(feature = "derive", feature = "full"))]
 618#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 619impl Clone for crate::ExprPath {
 620    fn clone(&self) -> Self {
 621        crate::ExprPath {
 622            attrs: self.attrs.clone(),
 623            qself: self.qself.clone(),
 624            path: self.path.clone(),
 625        }
 626    }
 627}
 628#[cfg(feature = "full")]
 629#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 630impl Clone for crate::ExprRange {
 631    fn clone(&self) -> Self {
 632        crate::ExprRange {
 633            attrs: self.attrs.clone(),
 634            start: self.start.clone(),
 635            limits: self.limits.clone(),
 636            end: self.end.clone(),
 637        }
 638    }
 639}
 640#[cfg(feature = "full")]
 641#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 642impl Clone for crate::ExprRawAddr {
 643    fn clone(&self) -> Self {
 644        crate::ExprRawAddr {
 645            attrs: self.attrs.clone(),
 646            and_token: self.and_token.clone(),
 647            raw: self.raw.clone(),
 648            mutability: self.mutability.clone(),
 649            expr: self.expr.clone(),
 650        }
 651    }
 652}
 653#[cfg(any(feature = "derive", feature = "full"))]
 654#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 655impl Clone for crate::ExprReference {
 656    fn clone(&self) -> Self {
 657        crate::ExprReference {
 658            attrs: self.attrs.clone(),
 659            and_token: self.and_token.clone(),
 660            mutability: self.mutability.clone(),
 661            expr: self.expr.clone(),
 662        }
 663    }
 664}
 665#[cfg(feature = "full")]
 666#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 667impl Clone for crate::ExprRepeat {
 668    fn clone(&self) -> Self {
 669        crate::ExprRepeat {
 670            attrs: self.attrs.clone(),
 671            bracket_token: self.bracket_token.clone(),
 672            expr: self.expr.clone(),
 673            semi_token: self.semi_token.clone(),
 674            len: self.len.clone(),
 675        }
 676    }
 677}
 678#[cfg(feature = "full")]
 679#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 680impl Clone for crate::ExprReturn {
 681    fn clone(&self) -> Self {
 682        crate::ExprReturn {
 683            attrs: self.attrs.clone(),
 684            return_token: self.return_token.clone(),
 685            expr: self.expr.clone(),
 686        }
 687    }
 688}
 689#[cfg(any(feature = "derive", feature = "full"))]
 690#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 691impl Clone for crate::ExprStruct {
 692    fn clone(&self) -> Self {
 693        crate::ExprStruct {
 694            attrs: self.attrs.clone(),
 695            qself: self.qself.clone(),
 696            path: self.path.clone(),
 697            brace_token: self.brace_token.clone(),
 698            fields: self.fields.clone(),
 699            dot2_token: self.dot2_token.clone(),
 700            rest: self.rest.clone(),
 701        }
 702    }
 703}
 704#[cfg(feature = "full")]
 705#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 706impl Clone for crate::ExprTry {
 707    fn clone(&self) -> Self {
 708        crate::ExprTry {
 709            attrs: self.attrs.clone(),
 710            expr: self.expr.clone(),
 711            question_token: self.question_token.clone(),
 712        }
 713    }
 714}
 715#[cfg(feature = "full")]
 716#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 717impl Clone for crate::ExprTryBlock {
 718    fn clone(&self) -> Self {
 719        crate::ExprTryBlock {
 720            attrs: self.attrs.clone(),
 721            try_token: self.try_token.clone(),
 722            block: self.block.clone(),
 723        }
 724    }
 725}
 726#[cfg(any(feature = "derive", feature = "full"))]
 727#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 728impl Clone for crate::ExprTuple {
 729    fn clone(&self) -> Self {
 730        crate::ExprTuple {
 731            attrs: self.attrs.clone(),
 732            paren_token: self.paren_token.clone(),
 733            elems: self.elems.clone(),
 734        }
 735    }
 736}
 737#[cfg(any(feature = "derive", feature = "full"))]
 738#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 739impl Clone for crate::ExprUnary {
 740    fn clone(&self) -> Self {
 741        crate::ExprUnary {
 742            attrs: self.attrs.clone(),
 743            op: self.op.clone(),
 744            expr: self.expr.clone(),
 745        }
 746    }
 747}
 748#[cfg(feature = "full")]
 749#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 750impl Clone for crate::ExprUnsafe {
 751    fn clone(&self) -> Self {
 752        crate::ExprUnsafe {
 753            attrs: self.attrs.clone(),
 754            unsafe_token: self.unsafe_token.clone(),
 755            block: self.block.clone(),
 756        }
 757    }
 758}
 759#[cfg(feature = "full")]
 760#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 761impl Clone for crate::ExprWhile {
 762    fn clone(&self) -> Self {
 763        crate::ExprWhile {
 764            attrs: self.attrs.clone(),
 765            label: self.label.clone(),
 766            while_token: self.while_token.clone(),
 767            cond: self.cond.clone(),
 768            body: self.body.clone(),
 769        }
 770    }
 771}
 772#[cfg(feature = "full")]
 773#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 774impl Clone for crate::ExprYield {
 775    fn clone(&self) -> Self {
 776        crate::ExprYield {
 777            attrs: self.attrs.clone(),
 778            yield_token: self.yield_token.clone(),
 779            expr: self.expr.clone(),
 780        }
 781    }
 782}
 783#[cfg(any(feature = "derive", feature = "full"))]
 784#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 785impl Clone for crate::Field {
 786    fn clone(&self) -> Self {
 787        crate::Field {
 788            attrs: self.attrs.clone(),
 789            vis: self.vis.clone(),
 790            mutability: self.mutability.clone(),
 791            ident: self.ident.clone(),
 792            colon_token: self.colon_token.clone(),
 793            ty: self.ty.clone(),
 794        }
 795    }
 796}
 797#[cfg(any(feature = "derive", feature = "full"))]
 798#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 799impl Clone for crate::FieldMutability {
 800    fn clone(&self) -> Self {
 801        match self {
 802            crate::FieldMutability::None => crate::FieldMutability::None,
 803        }
 804    }
 805}
 806#[cfg(feature = "full")]
 807#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 808impl Clone for crate::FieldPat {
 809    fn clone(&self) -> Self {
 810        crate::FieldPat {
 811            attrs: self.attrs.clone(),
 812            member: self.member.clone(),
 813            colon_token: self.colon_token.clone(),
 814            pat: self.pat.clone(),
 815        }
 816    }
 817}
 818#[cfg(any(feature = "derive", feature = "full"))]
 819#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 820impl Clone for crate::FieldValue {
 821    fn clone(&self) -> Self {
 822        crate::FieldValue {
 823            attrs: self.attrs.clone(),
 824            member: self.member.clone(),
 825            colon_token: self.colon_token.clone(),
 826            expr: self.expr.clone(),
 827        }
 828    }
 829}
 830#[cfg(any(feature = "derive", feature = "full"))]
 831#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 832impl Clone for crate::Fields {
 833    fn clone(&self) -> Self {
 834        match self {
 835            crate::Fields::Named(v0) => crate::Fields::Named(v0.clone()),
 836            crate::Fields::Unnamed(v0) => crate::Fields::Unnamed(v0.clone()),
 837            crate::Fields::Unit => crate::Fields::Unit,
 838        }
 839    }
 840}
 841#[cfg(any(feature = "derive", feature = "full"))]
 842#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 843impl Clone for crate::FieldsNamed {
 844    fn clone(&self) -> Self {
 845        crate::FieldsNamed {
 846            brace_token: self.brace_token.clone(),
 847            named: self.named.clone(),
 848        }
 849    }
 850}
 851#[cfg(any(feature = "derive", feature = "full"))]
 852#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 853impl Clone for crate::FieldsUnnamed {
 854    fn clone(&self) -> Self {
 855        crate::FieldsUnnamed {
 856            paren_token: self.paren_token.clone(),
 857            unnamed: self.unnamed.clone(),
 858        }
 859    }
 860}
 861#[cfg(feature = "full")]
 862#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 863impl Clone for crate::File {
 864    fn clone(&self) -> Self {
 865        crate::File {
 866            shebang: self.shebang.clone(),
 867            attrs: self.attrs.clone(),
 868            items: self.items.clone(),
 869        }
 870    }
 871}
 872#[cfg(feature = "full")]
 873#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 874impl Clone for crate::FnArg {
 875    fn clone(&self) -> Self {
 876        match self {
 877            crate::FnArg::Receiver(v0) => crate::FnArg::Receiver(v0.clone()),
 878            crate::FnArg::Typed(v0) => crate::FnArg::Typed(v0.clone()),
 879        }
 880    }
 881}
 882#[cfg(feature = "full")]
 883#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 884impl Clone for crate::ForeignItem {
 885    fn clone(&self) -> Self {
 886        match self {
 887            crate::ForeignItem::Fn(v0) => crate::ForeignItem::Fn(v0.clone()),
 888            crate::ForeignItem::Static(v0) => crate::ForeignItem::Static(v0.clone()),
 889            crate::ForeignItem::Type(v0) => crate::ForeignItem::Type(v0.clone()),
 890            crate::ForeignItem::Macro(v0) => crate::ForeignItem::Macro(v0.clone()),
 891            crate::ForeignItem::Verbatim(v0) => crate::ForeignItem::Verbatim(v0.clone()),
 892        }
 893    }
 894}
 895#[cfg(feature = "full")]
 896#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 897impl Clone for crate::ForeignItemFn {
 898    fn clone(&self) -> Self {
 899        crate::ForeignItemFn {
 900            attrs: self.attrs.clone(),
 901            vis: self.vis.clone(),
 902            sig: self.sig.clone(),
 903            semi_token: self.semi_token.clone(),
 904        }
 905    }
 906}
 907#[cfg(feature = "full")]
 908#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 909impl Clone for crate::ForeignItemMacro {
 910    fn clone(&self) -> Self {
 911        crate::ForeignItemMacro {
 912            attrs: self.attrs.clone(),
 913            mac: self.mac.clone(),
 914            semi_token: self.semi_token.clone(),
 915        }
 916    }
 917}
 918#[cfg(feature = "full")]
 919#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 920impl Clone for crate::ForeignItemStatic {
 921    fn clone(&self) -> Self {
 922        crate::ForeignItemStatic {
 923            attrs: self.attrs.clone(),
 924            vis: self.vis.clone(),
 925            static_token: self.static_token.clone(),
 926            mutability: self.mutability.clone(),
 927            ident: self.ident.clone(),
 928            colon_token: self.colon_token.clone(),
 929            ty: self.ty.clone(),
 930            semi_token: self.semi_token.clone(),
 931        }
 932    }
 933}
 934#[cfg(feature = "full")]
 935#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 936impl Clone for crate::ForeignItemType {
 937    fn clone(&self) -> Self {
 938        crate::ForeignItemType {
 939            attrs: self.attrs.clone(),
 940            vis: self.vis.clone(),
 941            type_token: self.type_token.clone(),
 942            ident: self.ident.clone(),
 943            generics: self.generics.clone(),
 944            semi_token: self.semi_token.clone(),
 945        }
 946    }
 947}
 948#[cfg(any(feature = "derive", feature = "full"))]
 949#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 950impl Clone for crate::GenericArgument {
 951    fn clone(&self) -> Self {
 952        match self {
 953            crate::GenericArgument::Lifetime(v0) => {
 954                crate::GenericArgument::Lifetime(v0.clone())
 955            }
 956            crate::GenericArgument::Type(v0) => crate::GenericArgument::Type(v0.clone()),
 957            crate::GenericArgument::Const(v0) => {
 958                crate::GenericArgument::Const(v0.clone())
 959            }
 960            crate::GenericArgument::AssocType(v0) => {
 961                crate::GenericArgument::AssocType(v0.clone())
 962            }
 963            crate::GenericArgument::AssocConst(v0) => {
 964                crate::GenericArgument::AssocConst(v0.clone())
 965            }
 966            crate::GenericArgument::Constraint(v0) => {
 967                crate::GenericArgument::Constraint(v0.clone())
 968            }
 969        }
 970    }
 971}
 972#[cfg(any(feature = "derive", feature = "full"))]
 973#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 974impl Clone for crate::GenericParam {
 975    fn clone(&self) -> Self {
 976        match self {
 977            crate::GenericParam::Lifetime(v0) => {
 978                crate::GenericParam::Lifetime(v0.clone())
 979            }
 980            crate::GenericParam::Type(v0) => crate::GenericParam::Type(v0.clone()),
 981            crate::GenericParam::Const(v0) => crate::GenericParam::Const(v0.clone()),
 982        }
 983    }
 984}
 985#[cfg(any(feature = "derive", feature = "full"))]
 986#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 987impl Clone for crate::Generics {
 988    fn clone(&self) -> Self {
 989        crate::Generics {
 990            lt_token: self.lt_token.clone(),
 991            params: self.params.clone(),
 992            gt_token: self.gt_token.clone(),
 993            where_clause: self.where_clause.clone(),
 994        }
 995    }
 996}
 997#[cfg(feature = "full")]
 998#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
 999impl Clone for crate::ImplItem {
1000    fn clone(&self) -> Self {
1001        match self {
1002            crate::ImplItem::Const(v0) => crate::ImplItem::Const(v0.clone()),
1003            crate::ImplItem::Fn(v0) => crate::ImplItem::Fn(v0.clone()),
1004            crate::ImplItem::Type(v0) => crate::ImplItem::Type(v0.clone()),
1005            crate::ImplItem::Macro(v0) => crate::ImplItem::Macro(v0.clone()),
1006            crate::ImplItem::Verbatim(v0) => crate::ImplItem::Verbatim(v0.clone()),
1007        }
1008    }
1009}
1010#[cfg(feature = "full")]
1011#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1012impl Clone for crate::ImplItemConst {
1013    fn clone(&self) -> Self {
1014        crate::ImplItemConst {
1015            attrs: self.attrs.clone(),
1016            vis: self.vis.clone(),
1017            defaultness: self.defaultness.clone(),
1018            const_token: self.const_token.clone(),
1019            ident: self.ident.clone(),
1020            generics: self.generics.clone(),
1021            colon_token: self.colon_token.clone(),
1022            ty: self.ty.clone(),
1023            eq_token: self.eq_token.clone(),
1024            expr: self.expr.clone(),
1025            semi_token: self.semi_token.clone(),
1026        }
1027    }
1028}
1029#[cfg(feature = "full")]
1030#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1031impl Clone for crate::ImplItemFn {
1032    fn clone(&self) -> Self {
1033        crate::ImplItemFn {
1034            attrs: self.attrs.clone(),
1035            vis: self.vis.clone(),
1036            defaultness: self.defaultness.clone(),
1037            sig: self.sig.clone(),
1038            block: self.block.clone(),
1039        }
1040    }
1041}
1042#[cfg(feature = "full")]
1043#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1044impl Clone for crate::ImplItemMacro {
1045    fn clone(&self) -> Self {
1046        crate::ImplItemMacro {
1047            attrs: self.attrs.clone(),
1048            mac: self.mac.clone(),
1049            semi_token: self.semi_token.clone(),
1050        }
1051    }
1052}
1053#[cfg(feature = "full")]
1054#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1055impl Clone for crate::ImplItemType {
1056    fn clone(&self) -> Self {
1057        crate::ImplItemType {
1058            attrs: self.attrs.clone(),
1059            vis: self.vis.clone(),
1060            defaultness: self.defaultness.clone(),
1061            type_token: self.type_token.clone(),
1062            ident: self.ident.clone(),
1063            generics: self.generics.clone(),
1064            eq_token: self.eq_token.clone(),
1065            ty: self.ty.clone(),
1066            semi_token: self.semi_token.clone(),
1067        }
1068    }
1069}
1070#[cfg(feature = "full")]
1071#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1072impl Clone for crate::ImplRestriction {
1073    fn clone(&self) -> Self {
1074        match *self {}
1075    }
1076}
1077#[cfg(any(feature = "derive", feature = "full"))]
1078#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1079impl Clone for crate::Index {
1080    fn clone(&self) -> Self {
1081        crate::Index {
1082            index: self.index.clone(),
1083            span: self.span.clone(),
1084        }
1085    }
1086}
1087#[cfg(feature = "full")]
1088#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1089impl Clone for crate::Item {
1090    fn clone(&self) -> Self {
1091        match self {
1092            crate::Item::Const(v0) => crate::Item::Const(v0.clone()),
1093            crate::Item::Enum(v0) => crate::Item::Enum(v0.clone()),
1094            crate::Item::ExternCrate(v0) => crate::Item::ExternCrate(v0.clone()),
1095            crate::Item::Fn(v0) => crate::Item::Fn(v0.clone()),
1096            crate::Item::ForeignMod(v0) => crate::Item::ForeignMod(v0.clone()),
1097            crate::Item::Impl(v0) => crate::Item::Impl(v0.clone()),
1098            crate::Item::Macro(v0) => crate::Item::Macro(v0.clone()),
1099            crate::Item::Mod(v0) => crate::Item::Mod(v0.clone()),
1100            crate::Item::Static(v0) => crate::Item::Static(v0.clone()),
1101            crate::Item::Struct(v0) => crate::Item::Struct(v0.clone()),
1102            crate::Item::Trait(v0) => crate::Item::Trait(v0.clone()),
1103            crate::Item::TraitAlias(v0) => crate::Item::TraitAlias(v0.clone()),
1104            crate::Item::Type(v0) => crate::Item::Type(v0.clone()),
1105            crate::Item::Union(v0) => crate::Item::Union(v0.clone()),
1106            crate::Item::Use(v0) => crate::Item::Use(v0.clone()),
1107            crate::Item::Verbatim(v0) => crate::Item::Verbatim(v0.clone()),
1108        }
1109    }
1110}
1111#[cfg(feature = "full")]
1112#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1113impl Clone for crate::ItemConst {
1114    fn clone(&self) -> Self {
1115        crate::ItemConst {
1116            attrs: self.attrs.clone(),
1117            vis: self.vis.clone(),
1118            const_token: self.const_token.clone(),
1119            ident: self.ident.clone(),
1120            generics: self.generics.clone(),
1121            colon_token: self.colon_token.clone(),
1122            ty: self.ty.clone(),
1123            eq_token: self.eq_token.clone(),
1124            expr: self.expr.clone(),
1125            semi_token: self.semi_token.clone(),
1126        }
1127    }
1128}
1129#[cfg(feature = "full")]
1130#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1131impl Clone for crate::ItemEnum {
1132    fn clone(&self) -> Self {
1133        crate::ItemEnum {
1134            attrs: self.attrs.clone(),
1135            vis: self.vis.clone(),
1136            enum_token: self.enum_token.clone(),
1137            ident: self.ident.clone(),
1138            generics: self.generics.clone(),
1139            brace_token: self.brace_token.clone(),
1140            variants: self.variants.clone(),
1141        }
1142    }
1143}
1144#[cfg(feature = "full")]
1145#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1146impl Clone for crate::ItemExternCrate {
1147    fn clone(&self) -> Self {
1148        crate::ItemExternCrate {
1149            attrs: self.attrs.clone(),
1150            vis: self.vis.clone(),
1151            extern_token: self.extern_token.clone(),
1152            crate_token: self.crate_token.clone(),
1153            ident: self.ident.clone(),
1154            rename: self.rename.clone(),
1155            semi_token: self.semi_token.clone(),
1156        }
1157    }
1158}
1159#[cfg(feature = "full")]
1160#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1161impl Clone for crate::ItemFn {
1162    fn clone(&self) -> Self {
1163        crate::ItemFn {
1164            attrs: self.attrs.clone(),
1165            vis: self.vis.clone(),
1166            sig: self.sig.clone(),
1167            block: self.block.clone(),
1168        }
1169    }
1170}
1171#[cfg(feature = "full")]
1172#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1173impl Clone for crate::ItemForeignMod {
1174    fn clone(&self) -> Self {
1175        crate::ItemForeignMod {
1176            attrs: self.attrs.clone(),
1177            unsafety: self.unsafety.clone(),
1178            abi: self.abi.clone(),
1179            brace_token: self.brace_token.clone(),
1180            items: self.items.clone(),
1181        }
1182    }
1183}
1184#[cfg(feature = "full")]
1185#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1186impl Clone for crate::ItemImpl {
1187    fn clone(&self) -> Self {
1188        crate::ItemImpl {
1189            attrs: self.attrs.clone(),
1190            defaultness: self.defaultness.clone(),
1191            unsafety: self.unsafety.clone(),
1192            impl_token: self.impl_token.clone(),
1193            generics: self.generics.clone(),
1194            trait_: self.trait_.clone(),
1195            self_ty: self.self_ty.clone(),
1196            brace_token: self.brace_token.clone(),
1197            items: self.items.clone(),
1198        }
1199    }
1200}
1201#[cfg(feature = "full")]
1202#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1203impl Clone for crate::ItemMacro {
1204    fn clone(&self) -> Self {
1205        crate::ItemMacro {
1206            attrs: self.attrs.clone(),
1207            ident: self.ident.clone(),
1208            mac: self.mac.clone(),
1209            semi_token: self.semi_token.clone(),
1210        }
1211    }
1212}
1213#[cfg(feature = "full")]
1214#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1215impl Clone for crate::ItemMod {
1216    fn clone(&self) -> Self {
1217        crate::ItemMod {
1218            attrs: self.attrs.clone(),
1219            vis: self.vis.clone(),
1220            unsafety: self.unsafety.clone(),
1221            mod_token: self.mod_token.clone(),
1222            ident: self.ident.clone(),
1223            content: self.content.clone(),
1224            semi: self.semi.clone(),
1225        }
1226    }
1227}
1228#[cfg(feature = "full")]
1229#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1230impl Clone for crate::ItemStatic {
1231    fn clone(&self) -> Self {
1232        crate::ItemStatic {
1233            attrs: self.attrs.clone(),
1234            vis: self.vis.clone(),
1235            static_token: self.static_token.clone(),
1236            mutability: self.mutability.clone(),
1237            ident: self.ident.clone(),
1238            colon_token: self.colon_token.clone(),
1239            ty: self.ty.clone(),
1240            eq_token: self.eq_token.clone(),
1241            expr: self.expr.clone(),
1242            semi_token: self.semi_token.clone(),
1243        }
1244    }
1245}
1246#[cfg(feature = "full")]
1247#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1248impl Clone for crate::ItemStruct {
1249    fn clone(&self) -> Self {
1250        crate::ItemStruct {
1251            attrs: self.attrs.clone(),
1252            vis: self.vis.clone(),
1253            struct_token: self.struct_token.clone(),
1254            ident: self.ident.clone(),
1255            generics: self.generics.clone(),
1256            fields: self.fields.clone(),
1257            semi_token: self.semi_token.clone(),
1258        }
1259    }
1260}
1261#[cfg(feature = "full")]
1262#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1263impl Clone for crate::ItemTrait {
1264    fn clone(&self) -> Self {
1265        crate::ItemTrait {
1266            attrs: self.attrs.clone(),
1267            vis: self.vis.clone(),
1268            unsafety: self.unsafety.clone(),
1269            auto_token: self.auto_token.clone(),
1270            restriction: self.restriction.clone(),
1271            trait_token: self.trait_token.clone(),
1272            ident: self.ident.clone(),
1273            generics: self.generics.clone(),
1274            colon_token: self.colon_token.clone(),
1275            supertraits: self.supertraits.clone(),
1276            brace_token: self.brace_token.clone(),
1277            items: self.items.clone(),
1278        }
1279    }
1280}
1281#[cfg(feature = "full")]
1282#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1283impl Clone for crate::ItemTraitAlias {
1284    fn clone(&self) -> Self {
1285        crate::ItemTraitAlias {
1286            attrs: self.attrs.clone(),
1287            vis: self.vis.clone(),
1288            trait_token: self.trait_token.clone(),
1289            ident: self.ident.clone(),
1290            generics: self.generics.clone(),
1291            eq_token: self.eq_token.clone(),
1292            bounds: self.bounds.clone(),
1293            semi_token: self.semi_token.clone(),
1294        }
1295    }
1296}
1297#[cfg(feature = "full")]
1298#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1299impl Clone for crate::ItemType {
1300    fn clone(&self) -> Self {
1301        crate::ItemType {
1302            attrs: self.attrs.clone(),
1303            vis: self.vis.clone(),
1304            type_token: self.type_token.clone(),
1305            ident: self.ident.clone(),
1306            generics: self.generics.clone(),
1307            eq_token: self.eq_token.clone(),
1308            ty: self.ty.clone(),
1309            semi_token: self.semi_token.clone(),
1310        }
1311    }
1312}
1313#[cfg(feature = "full")]
1314#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1315impl Clone for crate::ItemUnion {
1316    fn clone(&self) -> Self {
1317        crate::ItemUnion {
1318            attrs: self.attrs.clone(),
1319            vis: self.vis.clone(),
1320            union_token: self.union_token.clone(),
1321            ident: self.ident.clone(),
1322            generics: self.generics.clone(),
1323            fields: self.fields.clone(),
1324        }
1325    }
1326}
1327#[cfg(feature = "full")]
1328#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1329impl Clone for crate::ItemUse {
1330    fn clone(&self) -> Self {
1331        crate::ItemUse {
1332            attrs: self.attrs.clone(),
1333            vis: self.vis.clone(),
1334            use_token: self.use_token.clone(),
1335            leading_colon: self.leading_colon.clone(),
1336            tree: self.tree.clone(),
1337            semi_token: self.semi_token.clone(),
1338        }
1339    }
1340}
1341#[cfg(feature = "full")]
1342#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1343impl Clone for crate::Label {
1344    fn clone(&self) -> Self {
1345        crate::Label {
1346            name: self.name.clone(),
1347            colon_token: self.colon_token.clone(),
1348        }
1349    }
1350}
1351#[cfg(any(feature = "derive", feature = "full"))]
1352#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1353impl Clone for crate::LifetimeParam {
1354    fn clone(&self) -> Self {
1355        crate::LifetimeParam {
1356            attrs: self.attrs.clone(),
1357            lifetime: self.lifetime.clone(),
1358            colon_token: self.colon_token.clone(),
1359            bounds: self.bounds.clone(),
1360        }
1361    }
1362}
1363#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1364impl Clone for crate::Lit {
1365    fn clone(&self) -> Self {
1366        match self {
1367            crate::Lit::Str(v0) => crate::Lit::Str(v0.clone()),
1368            crate::Lit::ByteStr(v0) => crate::Lit::ByteStr(v0.clone()),
1369            crate::Lit::CStr(v0) => crate::Lit::CStr(v0.clone()),
1370            crate::Lit::Byte(v0) => crate::Lit::Byte(v0.clone()),
1371            crate::Lit::Char(v0) => crate::Lit::Char(v0.clone()),
1372            crate::Lit::Int(v0) => crate::Lit::Int(v0.clone()),
1373            crate::Lit::Float(v0) => crate::Lit::Float(v0.clone()),
1374            crate::Lit::Bool(v0) => crate::Lit::Bool(v0.clone()),
1375            crate::Lit::Verbatim(v0) => crate::Lit::Verbatim(v0.clone()),
1376        }
1377    }
1378}
1379#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1380impl Clone for crate::LitBool {
1381    fn clone(&self) -> Self {
1382        crate::LitBool {
1383            value: self.value.clone(),
1384            span: self.span.clone(),
1385        }
1386    }
1387}
1388#[cfg(feature = "full")]
1389#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1390impl Clone for crate::Local {
1391    fn clone(&self) -> Self {
1392        crate::Local {
1393            attrs: self.attrs.clone(),
1394            let_token: self.let_token.clone(),
1395            pat: self.pat.clone(),
1396            init: self.init.clone(),
1397            semi_token: self.semi_token.clone(),
1398        }
1399    }
1400}
1401#[cfg(feature = "full")]
1402#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1403impl Clone for crate::LocalInit {
1404    fn clone(&self) -> Self {
1405        crate::LocalInit {
1406            eq_token: self.eq_token.clone(),
1407            expr: self.expr.clone(),
1408            diverge: self.diverge.clone(),
1409        }
1410    }
1411}
1412#[cfg(any(feature = "derive", feature = "full"))]
1413#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1414impl Clone for crate::Macro {
1415    fn clone(&self) -> Self {
1416        crate::Macro {
1417            path: self.path.clone(),
1418            bang_token: self.bang_token.clone(),
1419            delimiter: self.delimiter.clone(),
1420            tokens: self.tokens.clone(),
1421        }
1422    }
1423}
1424#[cfg(any(feature = "derive", feature = "full"))]
1425#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1426impl Clone for crate::MacroDelimiter {
1427    fn clone(&self) -> Self {
1428        match self {
1429            crate::MacroDelimiter::Paren(v0) => crate::MacroDelimiter::Paren(v0.clone()),
1430            crate::MacroDelimiter::Brace(v0) => crate::MacroDelimiter::Brace(v0.clone()),
1431            crate::MacroDelimiter::Bracket(v0) => {
1432                crate::MacroDelimiter::Bracket(v0.clone())
1433            }
1434        }
1435    }
1436}
1437#[cfg(any(feature = "derive", feature = "full"))]
1438#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1439impl Clone for crate::Member {
1440    fn clone(&self) -> Self {
1441        match self {
1442            crate::Member::Named(v0) => crate::Member::Named(v0.clone()),
1443            crate::Member::Unnamed(v0) => crate::Member::Unnamed(v0.clone()),
1444        }
1445    }
1446}
1447#[cfg(any(feature = "derive", feature = "full"))]
1448#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1449impl Clone for crate::Meta {
1450    fn clone(&self) -> Self {
1451        match self {
1452            crate::Meta::Path(v0) => crate::Meta::Path(v0.clone()),
1453            crate::Meta::List(v0) => crate::Meta::List(v0.clone()),
1454            crate::Meta::NameValue(v0) => crate::Meta::NameValue(v0.clone()),
1455        }
1456    }
1457}
1458#[cfg(any(feature = "derive", feature = "full"))]
1459#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1460impl Clone for crate::MetaList {
1461    fn clone(&self) -> Self {
1462        crate::MetaList {
1463            path: self.path.clone(),
1464            delimiter: self.delimiter.clone(),
1465            tokens: self.tokens.clone(),
1466        }
1467    }
1468}
1469#[cfg(any(feature = "derive", feature = "full"))]
1470#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1471impl Clone for crate::MetaNameValue {
1472    fn clone(&self) -> Self {
1473        crate::MetaNameValue {
1474            path: self.path.clone(),
1475            eq_token: self.eq_token.clone(),
1476            value: self.value.clone(),
1477        }
1478    }
1479}
1480#[cfg(any(feature = "derive", feature = "full"))]
1481#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1482impl Clone for crate::ParenthesizedGenericArguments {
1483    fn clone(&self) -> Self {
1484        crate::ParenthesizedGenericArguments {
1485            paren_token: self.paren_token.clone(),
1486            inputs: self.inputs.clone(),
1487            output: self.output.clone(),
1488        }
1489    }
1490}
1491#[cfg(feature = "full")]
1492#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1493impl Clone for crate::Pat {
1494    fn clone(&self) -> Self {
1495        match self {
1496            crate::Pat::Const(v0) => crate::Pat::Const(v0.clone()),
1497            crate::Pat::Ident(v0) => crate::Pat::Ident(v0.clone()),
1498            crate::Pat::Lit(v0) => crate::Pat::Lit(v0.clone()),
1499            crate::Pat::Macro(v0) => crate::Pat::Macro(v0.clone()),
1500            crate::Pat::Or(v0) => crate::Pat::Or(v0.clone()),
1501            crate::Pat::Paren(v0) => crate::Pat::Paren(v0.clone()),
1502            crate::Pat::Path(v0) => crate::Pat::Path(v0.clone()),
1503            crate::Pat::Range(v0) => crate::Pat::Range(v0.clone()),
1504            crate::Pat::Reference(v0) => crate::Pat::Reference(v0.clone()),
1505            crate::Pat::Rest(v0) => crate::Pat::Rest(v0.clone()),
1506            crate::Pat::Slice(v0) => crate::Pat::Slice(v0.clone()),
1507            crate::Pat::Struct(v0) => crate::Pat::Struct(v0.clone()),
1508            crate::Pat::Tuple(v0) => crate::Pat::Tuple(v0.clone()),
1509            crate::Pat::TupleStruct(v0) => crate::Pat::TupleStruct(v0.clone()),
1510            crate::Pat::Type(v0) => crate::Pat::Type(v0.clone()),
1511            crate::Pat::Verbatim(v0) => crate::Pat::Verbatim(v0.clone()),
1512            crate::Pat::Wild(v0) => crate::Pat::Wild(v0.clone()),
1513        }
1514    }
1515}
1516#[cfg(feature = "full")]
1517#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1518impl Clone for crate::PatIdent {
1519    fn clone(&self) -> Self {
1520        crate::PatIdent {
1521            attrs: self.attrs.clone(),
1522            by_ref: self.by_ref.clone(),
1523            mutability: self.mutability.clone(),
1524            ident: self.ident.clone(),
1525            subpat: self.subpat.clone(),
1526        }
1527    }
1528}
1529#[cfg(feature = "full")]
1530#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1531impl Clone for crate::PatOr {
1532    fn clone(&self) -> Self {
1533        crate::PatOr {
1534            attrs: self.attrs.clone(),
1535            leading_vert: self.leading_vert.clone(),
1536            cases: self.cases.clone(),
1537        }
1538    }
1539}
1540#[cfg(feature = "full")]
1541#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1542impl Clone for crate::PatParen {
1543    fn clone(&self) -> Self {
1544        crate::PatParen {
1545            attrs: self.attrs.clone(),
1546            paren_token: self.paren_token.clone(),
1547            pat: self.pat.clone(),
1548        }
1549    }
1550}
1551#[cfg(feature = "full")]
1552#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1553impl Clone for crate::PatReference {
1554    fn clone(&self) -> Self {
1555        crate::PatReference {
1556            attrs: self.attrs.clone(),
1557            and_token: self.and_token.clone(),
1558            mutability: self.mutability.clone(),
1559            pat: self.pat.clone(),
1560        }
1561    }
1562}
1563#[cfg(feature = "full")]
1564#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1565impl Clone for crate::PatRest {
1566    fn clone(&self) -> Self {
1567        crate::PatRest {
1568            attrs: self.attrs.clone(),
1569            dot2_token: self.dot2_token.clone(),
1570        }
1571    }
1572}
1573#[cfg(feature = "full")]
1574#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1575impl Clone for crate::PatSlice {
1576    fn clone(&self) -> Self {
1577        crate::PatSlice {
1578            attrs: self.attrs.clone(),
1579            bracket_token: self.bracket_token.clone(),
1580            elems: self.elems.clone(),
1581        }
1582    }
1583}
1584#[cfg(feature = "full")]
1585#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1586impl Clone for crate::PatStruct {
1587    fn clone(&self) -> Self {
1588        crate::PatStruct {
1589            attrs: self.attrs.clone(),
1590            qself: self.qself.clone(),
1591            path: self.path.clone(),
1592            brace_token: self.brace_token.clone(),
1593            fields: self.fields.clone(),
1594            rest: self.rest.clone(),
1595        }
1596    }
1597}
1598#[cfg(feature = "full")]
1599#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1600impl Clone for crate::PatTuple {
1601    fn clone(&self) -> Self {
1602        crate::PatTuple {
1603            attrs: self.attrs.clone(),
1604            paren_token: self.paren_token.clone(),
1605            elems: self.elems.clone(),
1606        }
1607    }
1608}
1609#[cfg(feature = "full")]
1610#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1611impl Clone for crate::PatTupleStruct {
1612    fn clone(&self) -> Self {
1613        crate::PatTupleStruct {
1614            attrs: self.attrs.clone(),
1615            qself: self.qself.clone(),
1616            path: self.path.clone(),
1617            paren_token: self.paren_token.clone(),
1618            elems: self.elems.clone(),
1619        }
1620    }
1621}
1622#[cfg(feature = "full")]
1623#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1624impl Clone for crate::PatType {
1625    fn clone(&self) -> Self {
1626        crate::PatType {
1627            attrs: self.attrs.clone(),
1628            pat: self.pat.clone(),
1629            colon_token: self.colon_token.clone(),
1630            ty: self.ty.clone(),
1631        }
1632    }
1633}
1634#[cfg(feature = "full")]
1635#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1636impl Clone for crate::PatWild {
1637    fn clone(&self) -> Self {
1638        crate::PatWild {
1639            attrs: self.attrs.clone(),
1640            underscore_token: self.underscore_token.clone(),
1641        }
1642    }
1643}
1644#[cfg(any(feature = "derive", feature = "full"))]
1645#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1646impl Clone for crate::Path {
1647    fn clone(&self) -> Self {
1648        crate::Path {
1649            leading_colon: self.leading_colon.clone(),
1650            segments: self.segments.clone(),
1651        }
1652    }
1653}
1654#[cfg(any(feature = "derive", feature = "full"))]
1655#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1656impl Clone for crate::PathArguments {
1657    fn clone(&self) -> Self {
1658        match self {
1659            crate::PathArguments::None => crate::PathArguments::None,
1660            crate::PathArguments::AngleBracketed(v0) => {
1661                crate::PathArguments::AngleBracketed(v0.clone())
1662            }
1663            crate::PathArguments::Parenthesized(v0) => {
1664                crate::PathArguments::Parenthesized(v0.clone())
1665            }
1666        }
1667    }
1668}
1669#[cfg(any(feature = "derive", feature = "full"))]
1670#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1671impl Clone for crate::PathSegment {
1672    fn clone(&self) -> Self {
1673        crate::PathSegment {
1674            ident: self.ident.clone(),
1675            arguments: self.arguments.clone(),
1676        }
1677    }
1678}
1679#[cfg(feature = "full")]
1680#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1681impl Clone for crate::PointerMutability {
1682    fn clone(&self) -> Self {
1683        match self {
1684            crate::PointerMutability::Const(v0) => {
1685                crate::PointerMutability::Const(v0.clone())
1686            }
1687            crate::PointerMutability::Mut(v0) => {
1688                crate::PointerMutability::Mut(v0.clone())
1689            }
1690        }
1691    }
1692}
1693#[cfg(feature = "full")]
1694#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1695impl Clone for crate::PreciseCapture {
1696    fn clone(&self) -> Self {
1697        crate::PreciseCapture {
1698            use_token: self.use_token.clone(),
1699            lt_token: self.lt_token.clone(),
1700            params: self.params.clone(),
1701            gt_token: self.gt_token.clone(),
1702        }
1703    }
1704}
1705#[cfg(any(feature = "derive", feature = "full"))]
1706#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1707impl Clone for crate::PredicateLifetime {
1708    fn clone(&self) -> Self {
1709        crate::PredicateLifetime {
1710            lifetime: self.lifetime.clone(),
1711            colon_token: self.colon_token.clone(),
1712            bounds: self.bounds.clone(),
1713        }
1714    }
1715}
1716#[cfg(any(feature = "derive", feature = "full"))]
1717#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1718impl Clone for crate::PredicateType {
1719    fn clone(&self) -> Self {
1720        crate::PredicateType {
1721            lifetimes: self.lifetimes.clone(),
1722            bounded_ty: self.bounded_ty.clone(),
1723            colon_token: self.colon_token.clone(),
1724            bounds: self.bounds.clone(),
1725        }
1726    }
1727}
1728#[cfg(any(feature = "derive", feature = "full"))]
1729#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1730impl Clone for crate::QSelf {
1731    fn clone(&self) -> Self {
1732        crate::QSelf {
1733            lt_token: self.lt_token.clone(),
1734            ty: self.ty.clone(),
1735            position: self.position.clone(),
1736            as_token: self.as_token.clone(),
1737            gt_token: self.gt_token.clone(),
1738        }
1739    }
1740}
1741#[cfg(feature = "full")]
1742#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1743impl Copy for crate::RangeLimits {}
1744#[cfg(feature = "full")]
1745#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1746impl Clone for crate::RangeLimits {
1747    fn clone(&self) -> Self {
1748        *self
1749    }
1750}
1751#[cfg(feature = "full")]
1752#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1753impl Clone for crate::Receiver {
1754    fn clone(&self) -> Self {
1755        crate::Receiver {
1756            attrs: self.attrs.clone(),
1757            reference: self.reference.clone(),
1758            mutability: self.mutability.clone(),
1759            self_token: self.self_token.clone(),
1760            colon_token: self.colon_token.clone(),
1761            ty: self.ty.clone(),
1762        }
1763    }
1764}
1765#[cfg(any(feature = "derive", feature = "full"))]
1766#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1767impl Clone for crate::ReturnType {
1768    fn clone(&self) -> Self {
1769        match self {
1770            crate::ReturnType::Default => crate::ReturnType::Default,
1771            crate::ReturnType::Type(v0, v1) => {
1772                crate::ReturnType::Type(v0.clone(), v1.clone())
1773            }
1774        }
1775    }
1776}
1777#[cfg(feature = "full")]
1778#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1779impl Clone for crate::Signature {
1780    fn clone(&self) -> Self {
1781        crate::Signature {
1782            constness: self.constness.clone(),
1783            asyncness: self.asyncness.clone(),
1784            unsafety: self.unsafety.clone(),
1785            abi: self.abi.clone(),
1786            fn_token: self.fn_token.clone(),
1787            ident: self.ident.clone(),
1788            generics: self.generics.clone(),
1789            paren_token: self.paren_token.clone(),
1790            inputs: self.inputs.clone(),
1791            variadic: self.variadic.clone(),
1792            output: self.output.clone(),
1793        }
1794    }
1795}
1796#[cfg(feature = "full")]
1797#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1798impl Clone for crate::StaticMutability {
1799    fn clone(&self) -> Self {
1800        match self {
1801            crate::StaticMutability::Mut(v0) => crate::StaticMutability::Mut(v0.clone()),
1802            crate::StaticMutability::None => crate::StaticMutability::None,
1803        }
1804    }
1805}
1806#[cfg(feature = "full")]
1807#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1808impl Clone for crate::Stmt {
1809    fn clone(&self) -> Self {
1810        match self {
1811            crate::Stmt::Local(v0) => crate::Stmt::Local(v0.clone()),
1812            crate::Stmt::Item(v0) => crate::Stmt::Item(v0.clone()),
1813            crate::Stmt::Expr(v0, v1) => crate::Stmt::Expr(v0.clone(), v1.clone()),
1814            crate::Stmt::Macro(v0) => crate::Stmt::Macro(v0.clone()),
1815        }
1816    }
1817}
1818#[cfg(feature = "full")]
1819#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1820impl Clone for crate::StmtMacro {
1821    fn clone(&self) -> Self {
1822        crate::StmtMacro {
1823            attrs: self.attrs.clone(),
1824            mac: self.mac.clone(),
1825            semi_token: self.semi_token.clone(),
1826        }
1827    }
1828}
1829#[cfg(any(feature = "derive", feature = "full"))]
1830#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1831impl Clone for crate::TraitBound {
1832    fn clone(&self) -> Self {
1833        crate::TraitBound {
1834            paren_token: self.paren_token.clone(),
1835            modifier: self.modifier.clone(),
1836            lifetimes: self.lifetimes.clone(),
1837            path: self.path.clone(),
1838        }
1839    }
1840}
1841#[cfg(any(feature = "derive", feature = "full"))]
1842#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1843impl Copy for crate::TraitBoundModifier {}
1844#[cfg(any(feature = "derive", feature = "full"))]
1845#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1846impl Clone for crate::TraitBoundModifier {
1847    fn clone(&self) -> Self {
1848        *self
1849    }
1850}
1851#[cfg(feature = "full")]
1852#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1853impl Clone for crate::TraitItem {
1854    fn clone(&self) -> Self {
1855        match self {
1856            crate::TraitItem::Const(v0) => crate::TraitItem::Const(v0.clone()),
1857            crate::TraitItem::Fn(v0) => crate::TraitItem::Fn(v0.clone()),
1858            crate::TraitItem::Type(v0) => crate::TraitItem::Type(v0.clone()),
1859            crate::TraitItem::Macro(v0) => crate::TraitItem::Macro(v0.clone()),
1860            crate::TraitItem::Verbatim(v0) => crate::TraitItem::Verbatim(v0.clone()),
1861        }
1862    }
1863}
1864#[cfg(feature = "full")]
1865#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1866impl Clone for crate::TraitItemConst {
1867    fn clone(&self) -> Self {
1868        crate::TraitItemConst {
1869            attrs: self.attrs.clone(),
1870            const_token: self.const_token.clone(),
1871            ident: self.ident.clone(),
1872            generics: self.generics.clone(),
1873            colon_token: self.colon_token.clone(),
1874            ty: self.ty.clone(),
1875            default: self.default.clone(),
1876            semi_token: self.semi_token.clone(),
1877        }
1878    }
1879}
1880#[cfg(feature = "full")]
1881#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1882impl Clone for crate::TraitItemFn {
1883    fn clone(&self) -> Self {
1884        crate::TraitItemFn {
1885            attrs: self.attrs.clone(),
1886            sig: self.sig.clone(),
1887            default: self.default.clone(),
1888            semi_token: self.semi_token.clone(),
1889        }
1890    }
1891}
1892#[cfg(feature = "full")]
1893#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1894impl Clone for crate::TraitItemMacro {
1895    fn clone(&self) -> Self {
1896        crate::TraitItemMacro {
1897            attrs: self.attrs.clone(),
1898            mac: self.mac.clone(),
1899            semi_token: self.semi_token.clone(),
1900        }
1901    }
1902}
1903#[cfg(feature = "full")]
1904#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1905impl Clone for crate::TraitItemType {
1906    fn clone(&self) -> Self {
1907        crate::TraitItemType {
1908            attrs: self.attrs.clone(),
1909            type_token: self.type_token.clone(),
1910            ident: self.ident.clone(),
1911            generics: self.generics.clone(),
1912            colon_token: self.colon_token.clone(),
1913            bounds: self.bounds.clone(),
1914            default: self.default.clone(),
1915            semi_token: self.semi_token.clone(),
1916        }
1917    }
1918}
1919#[cfg(any(feature = "derive", feature = "full"))]
1920#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1921impl Clone for crate::Type {
1922    fn clone(&self) -> Self {
1923        match self {
1924            crate::Type::Array(v0) => crate::Type::Array(v0.clone()),
1925            crate::Type::BareFn(v0) => crate::Type::BareFn(v0.clone()),
1926            crate::Type::Group(v0) => crate::Type::Group(v0.clone()),
1927            crate::Type::ImplTrait(v0) => crate::Type::ImplTrait(v0.clone()),
1928            crate::Type::Infer(v0) => crate::Type::Infer(v0.clone()),
1929            crate::Type::Macro(v0) => crate::Type::Macro(v0.clone()),
1930            crate::Type::Never(v0) => crate::Type::Never(v0.clone()),
1931            crate::Type::Paren(v0) => crate::Type::Paren(v0.clone()),
1932            crate::Type::Path(v0) => crate::Type::Path(v0.clone()),
1933            crate::Type::Ptr(v0) => crate::Type::Ptr(v0.clone()),
1934            crate::Type::Reference(v0) => crate::Type::Reference(v0.clone()),
1935            crate::Type::Slice(v0) => crate::Type::Slice(v0.clone()),
1936            crate::Type::TraitObject(v0) => crate::Type::TraitObject(v0.clone()),
1937            crate::Type::Tuple(v0) => crate::Type::Tuple(v0.clone()),
1938            crate::Type::Verbatim(v0) => crate::Type::Verbatim(v0.clone()),
1939        }
1940    }
1941}
1942#[cfg(any(feature = "derive", feature = "full"))]
1943#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1944impl Clone for crate::TypeArray {
1945    fn clone(&self) -> Self {
1946        crate::TypeArray {
1947            bracket_token: self.bracket_token.clone(),
1948            elem: self.elem.clone(),
1949            semi_token: self.semi_token.clone(),
1950            len: self.len.clone(),
1951        }
1952    }
1953}
1954#[cfg(any(feature = "derive", feature = "full"))]
1955#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1956impl Clone for crate::TypeBareFn {
1957    fn clone(&self) -> Self {
1958        crate::TypeBareFn {
1959            lifetimes: self.lifetimes.clone(),
1960            unsafety: self.unsafety.clone(),
1961            abi: self.abi.clone(),
1962            fn_token: self.fn_token.clone(),
1963            paren_token: self.paren_token.clone(),
1964            inputs: self.inputs.clone(),
1965            variadic: self.variadic.clone(),
1966            output: self.output.clone(),
1967        }
1968    }
1969}
1970#[cfg(any(feature = "derive", feature = "full"))]
1971#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1972impl Clone for crate::TypeGroup {
1973    fn clone(&self) -> Self {
1974        crate::TypeGroup {
1975            group_token: self.group_token.clone(),
1976            elem: self.elem.clone(),
1977        }
1978    }
1979}
1980#[cfg(any(feature = "derive", feature = "full"))]
1981#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1982impl Clone for crate::TypeImplTrait {
1983    fn clone(&self) -> Self {
1984        crate::TypeImplTrait {
1985            impl_token: self.impl_token.clone(),
1986            bounds: self.bounds.clone(),
1987        }
1988    }
1989}
1990#[cfg(any(feature = "derive", feature = "full"))]
1991#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
1992impl Clone for crate::TypeInfer {
1993    fn clone(&self) -> Self {
1994        crate::TypeInfer {
1995            underscore_token: self.underscore_token.clone(),
1996        }
1997    }
1998}
1999#[cfg(any(feature = "derive", feature = "full"))]
2000#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2001impl Clone for crate::TypeMacro {
2002    fn clone(&self) -> Self {
2003        crate::TypeMacro {
2004            mac: self.mac.clone(),
2005        }
2006    }
2007}
2008#[cfg(any(feature = "derive", feature = "full"))]
2009#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2010impl Clone for crate::TypeNever {
2011    fn clone(&self) -> Self {
2012        crate::TypeNever {
2013            bang_token: self.bang_token.clone(),
2014        }
2015    }
2016}
2017#[cfg(any(feature = "derive", feature = "full"))]
2018#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2019impl Clone for crate::TypeParam {
2020    fn clone(&self) -> Self {
2021        crate::TypeParam {
2022            attrs: self.attrs.clone(),
2023            ident: self.ident.clone(),
2024            colon_token: self.colon_token.clone(),
2025            bounds: self.bounds.clone(),
2026            eq_token: self.eq_token.clone(),
2027            default: self.default.clone(),
2028        }
2029    }
2030}
2031#[cfg(any(feature = "derive", feature = "full"))]
2032#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2033impl Clone for crate::TypeParamBound {
2034    fn clone(&self) -> Self {
2035        match self {
2036            crate::TypeParamBound::Trait(v0) => crate::TypeParamBound::Trait(v0.clone()),
2037            crate::TypeParamBound::Lifetime(v0) => {
2038                crate::TypeParamBound::Lifetime(v0.clone())
2039            }
2040            #[cfg(feature = "full")]
2041            crate::TypeParamBound::PreciseCapture(v0) => {
2042                crate::TypeParamBound::PreciseCapture(v0.clone())
2043            }
2044            crate::TypeParamBound::Verbatim(v0) => {
2045                crate::TypeParamBound::Verbatim(v0.clone())
2046            }
2047            #[cfg(not(feature = "full"))]
2048            _ => unreachable!(),
2049        }
2050    }
2051}
2052#[cfg(any(feature = "derive", feature = "full"))]
2053#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2054impl Clone for crate::TypeParen {
2055    fn clone(&self) -> Self {
2056        crate::TypeParen {
2057            paren_token: self.paren_token.clone(),
2058            elem: self.elem.clone(),
2059        }
2060    }
2061}
2062#[cfg(any(feature = "derive", feature = "full"))]
2063#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2064impl Clone for crate::TypePath {
2065    fn clone(&self) -> Self {
2066        crate::TypePath {
2067            qself: self.qself.clone(),
2068            path: self.path.clone(),
2069        }
2070    }
2071}
2072#[cfg(any(feature = "derive", feature = "full"))]
2073#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2074impl Clone for crate::TypePtr {
2075    fn clone(&self) -> Self {
2076        crate::TypePtr {
2077            star_token: self.star_token.clone(),
2078            const_token: self.const_token.clone(),
2079            mutability: self.mutability.clone(),
2080            elem: self.elem.clone(),
2081        }
2082    }
2083}
2084#[cfg(any(feature = "derive", feature = "full"))]
2085#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2086impl Clone for crate::TypeReference {
2087    fn clone(&self) -> Self {
2088        crate::TypeReference {
2089            and_token: self.and_token.clone(),
2090            lifetime: self.lifetime.clone(),
2091            mutability: self.mutability.clone(),
2092            elem: self.elem.clone(),
2093        }
2094    }
2095}
2096#[cfg(any(feature = "derive", feature = "full"))]
2097#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2098impl Clone for crate::TypeSlice {
2099    fn clone(&self) -> Self {
2100        crate::TypeSlice {
2101            bracket_token: self.bracket_token.clone(),
2102            elem: self.elem.clone(),
2103        }
2104    }
2105}
2106#[cfg(any(feature = "derive", feature = "full"))]
2107#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2108impl Clone for crate::TypeTraitObject {
2109    fn clone(&self) -> Self {
2110        crate::TypeTraitObject {
2111            dyn_token: self.dyn_token.clone(),
2112            bounds: self.bounds.clone(),
2113        }
2114    }
2115}
2116#[cfg(any(feature = "derive", feature = "full"))]
2117#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2118impl Clone for crate::TypeTuple {
2119    fn clone(&self) -> Self {
2120        crate::TypeTuple {
2121            paren_token: self.paren_token.clone(),
2122            elems: self.elems.clone(),
2123        }
2124    }
2125}
2126#[cfg(any(feature = "derive", feature = "full"))]
2127#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2128impl Copy for crate::UnOp {}
2129#[cfg(any(feature = "derive", feature = "full"))]
2130#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2131impl Clone for crate::UnOp {
2132    fn clone(&self) -> Self {
2133        *self
2134    }
2135}
2136#[cfg(feature = "full")]
2137#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2138impl Clone for crate::UseGlob {
2139    fn clone(&self) -> Self {
2140        crate::UseGlob {
2141            star_token: self.star_token.clone(),
2142        }
2143    }
2144}
2145#[cfg(feature = "full")]
2146#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2147impl Clone for crate::UseGroup {
2148    fn clone(&self) -> Self {
2149        crate::UseGroup {
2150            brace_token: self.brace_token.clone(),
2151            items: self.items.clone(),
2152        }
2153    }
2154}
2155#[cfg(feature = "full")]
2156#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2157impl Clone for crate::UseName {
2158    fn clone(&self) -> Self {
2159        crate::UseName {
2160            ident: self.ident.clone(),
2161        }
2162    }
2163}
2164#[cfg(feature = "full")]
2165#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2166impl Clone for crate::UsePath {
2167    fn clone(&self) -> Self {
2168        crate::UsePath {
2169            ident: self.ident.clone(),
2170            colon2_token: self.colon2_token.clone(),
2171            tree: self.tree.clone(),
2172        }
2173    }
2174}
2175#[cfg(feature = "full")]
2176#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2177impl Clone for crate::UseRename {
2178    fn clone(&self) -> Self {
2179        crate::UseRename {
2180            ident: self.ident.clone(),
2181            as_token: self.as_token.clone(),
2182            rename: self.rename.clone(),
2183        }
2184    }
2185}
2186#[cfg(feature = "full")]
2187#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2188impl Clone for crate::UseTree {
2189    fn clone(&self) -> Self {
2190        match self {
2191            crate::UseTree::Path(v0) => crate::UseTree::Path(v0.clone()),
2192            crate::UseTree::Name(v0) => crate::UseTree::Name(v0.clone()),
2193            crate::UseTree::Rename(v0) => crate::UseTree::Rename(v0.clone()),
2194            crate::UseTree::Glob(v0) => crate::UseTree::Glob(v0.clone()),
2195            crate::UseTree::Group(v0) => crate::UseTree::Group(v0.clone()),
2196        }
2197    }
2198}
2199#[cfg(feature = "full")]
2200#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2201impl Clone for crate::Variadic {
2202    fn clone(&self) -> Self {
2203        crate::Variadic {
2204            attrs: self.attrs.clone(),
2205            pat: self.pat.clone(),
2206            dots: self.dots.clone(),
2207            comma: self.comma.clone(),
2208        }
2209    }
2210}
2211#[cfg(any(feature = "derive", feature = "full"))]
2212#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2213impl Clone for crate::Variant {
2214    fn clone(&self) -> Self {
2215        crate::Variant {
2216            attrs: self.attrs.clone(),
2217            ident: self.ident.clone(),
2218            fields: self.fields.clone(),
2219            discriminant: self.discriminant.clone(),
2220        }
2221    }
2222}
2223#[cfg(any(feature = "derive", feature = "full"))]
2224#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2225impl Clone for crate::VisRestricted {
2226    fn clone(&self) -> Self {
2227        crate::VisRestricted {
2228            pub_token: self.pub_token.clone(),
2229            paren_token: self.paren_token.clone(),
2230            in_token: self.in_token.clone(),
2231            path: self.path.clone(),
2232        }
2233    }
2234}
2235#[cfg(any(feature = "derive", feature = "full"))]
2236#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2237impl Clone for crate::Visibility {
2238    fn clone(&self) -> Self {
2239        match self {
2240            crate::Visibility::Public(v0) => crate::Visibility::Public(v0.clone()),
2241            crate::Visibility::Restricted(v0) => {
2242                crate::Visibility::Restricted(v0.clone())
2243            }
2244            crate::Visibility::Inherited => crate::Visibility::Inherited,
2245        }
2246    }
2247}
2248#[cfg(any(feature = "derive", feature = "full"))]
2249#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2250impl Clone for crate::WhereClause {
2251    fn clone(&self) -> Self {
2252        crate::WhereClause {
2253            where_token: self.where_token.clone(),
2254            predicates: self.predicates.clone(),
2255        }
2256    }
2257}
2258#[cfg(any(feature = "derive", feature = "full"))]
2259#[cfg_attr(docsrs, doc(cfg(feature = "clone-impls")))]
2260impl Clone for crate::WherePredicate {
2261    fn clone(&self) -> Self {
2262        match self {
2263            crate::WherePredicate::Lifetime(v0) => {
2264                crate::WherePredicate::Lifetime(v0.clone())
2265            }
2266            crate::WherePredicate::Type(v0) => crate::WherePredicate::Type(v0.clone()),
2267        }
2268    }
2269}
~/ Read-only file preview.