clone.rs 75 KB

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