diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-11-17 00:14:03 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-11-17 00:14:03 +0000 |
commit | 10f5acc0f0b3f5d4dbd4f871af7ceb4e18a0aca5 (patch) | |
tree | b5292124981f207ffbb2a12b3a78d6e5a65c0d77 /src/lib.rs | |
parent | 129301cc8a06384523784f740016f0e251fe2fca (diff) | |
parent | af68bf99ca6c35f44c4ec225f7c5d37a20e2873b (diff) | |
download | syn-mid-android14-qpr2-s1-release.tar.gz |
Snap for 11111096 from af68bf99ca6c35f44c4ec225f7c5d37a20e2873b to 24Q1-releaseandroid-14.0.0_r37android-14.0.0_r36android-14.0.0_r35android-14.0.0_r34android-14.0.0_r33android-14.0.0_r32android-14.0.0_r31android-14.0.0_r30android-14.0.0_r29android14-qpr2-s5-releaseandroid14-qpr2-s4-releaseandroid14-qpr2-s3-releaseandroid14-qpr2-s2-releaseandroid14-qpr2-s1-releaseandroid14-qpr2-release
Change-Id: I5caebfa8e2b2ecb7898f9842cf2e2be5f9599cdb
Diffstat (limited to 'src/lib.rs')
-rw-r--r-- | src/lib.rs | 106 |
1 files changed, 72 insertions, 34 deletions
@@ -1,32 +1,50 @@ -//! 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 +// SPDX-License-Identifier: Apache-2.0 OR MIT + +/*! +<!-- tidy:crate-doc:start --> +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. + +## Usage + +Add this to your `Cargo.toml`: + +```toml +[dependencies] +syn-mid = "0.5" +``` + +*Compiler support: requires rustc 1.56+* + +[**Examples**](https://github.com/taiki-e/syn-mid/tree/HEAD/examples) + +## Optional features + +- **`clone-impls`** — Clone impls for all syntax tree types. + +[syn]: https://github.com/dtolnay/syn + +<!-- tidy:crate-doc:end --> +*/ #![doc(test( no_crate_inject, @@ -36,12 +54,29 @@ ) ))] #![forbid(unsafe_code)] -#![warn(future_incompatible, rust_2018_idioms, single_use_lifetimes, unreachable_pub)] -#![warn(clippy::all, clippy::default_trait_access)] -#![allow(clippy::eval_order_dependence, clippy::large_enum_variant)] +#![warn( + rust_2018_idioms, + single_use_lifetimes, + unreachable_pub, + clippy::pedantic, + // Lints that may help when writing public library. + // missing_debug_implementations, + // missing_docs, + clippy::alloc_instead_of_core, + // clippy::exhaustive_enums, // TODO + // clippy::exhaustive_structs, // TODO + clippy::impl_trait_in_params, + // clippy::missing_inline_in_public_items, + // clippy::std_instead_of_alloc, + clippy::std_instead_of_core, +)] +#![allow(clippy::missing_errors_doc, clippy::module_name_repetitions)] // Many of the code contained in this crate are copies from https://github.com/dtolnay/syn. +#[cfg(doc)] +extern crate self as syn_mid; + #[macro_use] mod macros; @@ -49,10 +84,13 @@ mod func; mod pat; mod path; +#[doc(no_inline)] +pub use syn::ExprPath as PatPath; + pub use crate::{ - func::{Block, FnArg, ItemFn, Receiver, Signature}, + func::{Block, FnArg, ItemFn, Receiver, Signature, Variadic}, pat::{ - FieldPat, Pat, PatIdent, PatPath, PatReference, PatStruct, PatTuple, PatTupleStruct, + FieldPat, Pat, PatIdent, PatReference, PatRest, PatStruct, PatTuple, PatTupleStruct, PatType, PatWild, }, }; |