blob: f4492887b39c1d92366b859bd7f8d6954e23288f [file] [log] [blame]
//! 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
//!
//! * **`clone-impls`** — Clone impls for all syntax tree types.
//!
//! [`syn_mid::ItemFn`]: ItemFn
//! [`syn_mid::Block`]: Block
//! [syn]: https://github.com/dtolnay/syn
#![doc(test(
no_crate_inject,
attr(
deny(warnings, rust_2018_idioms, single_use_lifetimes),
allow(dead_code, unused_variables)
)
))]
#![forbid(unsafe_code)]
#![warn(future_incompatible, rust_2018_idioms, single_use_lifetimes, unreachable_pub)]
#![warn(clippy::default_trait_access, clippy::wildcard_imports)]
#![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,
},
};