1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
//! Providing the features between "full" and "derive" of syn. //! //! This crate provides the following two unique data structures. //! //! * [`syn_mid::ItemFn`] -- A function whose body is not parsed. //! //! ```text //! fn process(n: usize) -> Result<()> { ... } //! ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ ^ //! ``` //! //! * [`syn_mid::Block`] -- A block whose body is not parsed. //! //! ```text //! { ... } //! ^ ^ //! ``` //! //! Other data structures are the same as data structures of [syn]. These are defined in this crate //! because they cannot be used in [syn] without "full" feature. //! //! # Optional features //! //! syn-mid in the default features aims to provide the features between "full" //! and "derive" of [syn]. //! //! * **`clone-impls`** — Clone impls for all syntax tree types. //! //! [`syn_mid::ItemFn`]: ItemFn //! [`syn_mid::Block`]: Block //! [syn]: https://github.com/dtolnay/syn #![doc(html_root_url = "https://docs.rs/syn-mid/0.5.1")] #![doc(test( no_crate_inject, attr(deny(warnings, rust_2018_idioms, single_use_lifetimes), allow(dead_code)) ))] #![forbid(unsafe_code)] #![warn(future_incompatible, rust_2018_idioms, single_use_lifetimes, unreachable_pub)] #![warn(clippy::all, clippy::default_trait_access)] // mem::take and #[non_exhaustive] requires Rust 1.40, matches! requires Rust 1.42 #![allow( clippy::mem_replace_with_default, clippy::manual_non_exhaustive, clippy::match_like_matches_macro )] #![allow(clippy::eval_order_dependence, clippy::large_enum_variant)] // Many of the code contained in this crate are copies from https://github.com/dtolnay/syn. #[macro_use] mod macros; mod func; mod pat; mod path; pub use crate::{ func::{Block, FnArg, ItemFn, Receiver, Signature}, pat::{ FieldPat, Pat, PatIdent, PatPath, PatReference, PatStruct, PatTuple, PatTupleStruct, PatType, PatWild, }, };