1#![cfg_attr(docsrs, feature(doc_cfg))]
2#![cfg_attr(any(doc, test), doc = include_str!("../README.md"))]
3#![cfg_attr(not(any(doc, test)), doc = env!("CARGO_PKG_NAME"))]
4#![deny(nonstandard_style, rustdoc::all, trivial_casts, trivial_numeric_casts)]
5#![forbid(non_ascii_idents, unsafe_code)]
6#![warn(
7 clippy::absolute_paths,
8 clippy::allow_attributes,
9 clippy::allow_attributes_without_reason,
10 clippy::as_conversions,
11 clippy::as_pointer_underscore,
12 clippy::as_ptr_cast_mut,
13 clippy::assertions_on_result_states,
14 clippy::branches_sharing_code,
15 clippy::cfg_not_test,
16 clippy::clear_with_drain,
17 clippy::clone_on_ref_ptr,
18 clippy::coerce_container_to_any,
19 clippy::collection_is_never_read,
20 clippy::create_dir,
21 clippy::dbg_macro,
22 clippy::debug_assert_with_mut_call,
23 clippy::decimal_literal_representation,
24 clippy::default_union_representation,
25 clippy::derive_partial_eq_without_eq,
26 clippy::doc_include_without_cfg,
27 clippy::doc_paragraphs_missing_punctuation,
28 clippy::empty_drop,
29 clippy::empty_structs_with_brackets,
30 clippy::equatable_if_let,
31 clippy::empty_enum_variants_with_brackets,
32 clippy::exit,
33 clippy::expect_used,
34 clippy::fallible_impl_from,
35 clippy::filetype_is_file,
36 clippy::float_cmp_const,
37 clippy::fn_to_numeric_cast_any,
38 clippy::get_unwrap,
39 clippy::if_then_some_else_none,
40 clippy::imprecise_flops,
41 clippy::infinite_loop,
42 clippy::iter_on_empty_collections,
43 clippy::iter_on_single_items,
44 clippy::iter_over_hash_type,
45 clippy::iter_with_drain,
46 clippy::large_include_file,
47 clippy::large_stack_frames,
48 clippy::let_underscore_untyped,
49 clippy::literal_string_with_formatting_args,
50 clippy::lossy_float_literal,
51 clippy::map_err_ignore,
52 clippy::map_with_unused_argument_over_ranges,
53 clippy::mem_forget,
54 clippy::missing_assert_message,
55 clippy::missing_asserts_for_indexing,
56 clippy::missing_const_for_fn,
57 clippy::missing_docs_in_private_items,
58 clippy::module_name_repetitions,
59 clippy::multiple_inherent_impl,
60 clippy::multiple_unsafe_ops_per_block,
61 clippy::mutex_atomic,
62 clippy::mutex_integer,
63 clippy::needless_collect,
64 clippy::needless_pass_by_ref_mut,
65 clippy::needless_raw_strings,
66 clippy::needless_type_cast,
67 clippy::non_zero_suggestions,
68 clippy::nonstandard_macro_braces,
69 clippy::option_if_let_else,
70 clippy::or_fun_call,
71 clippy::panic_in_result_fn,
72 clippy::partial_pub_fields,
73 clippy::pathbuf_init_then_push,
74 clippy::pedantic,
75 clippy::precedence_bits,
76 clippy::print_stderr,
77 clippy::print_stdout,
78 clippy::pub_without_shorthand,
79 clippy::rc_buffer,
80 clippy::rc_mutex,
81 clippy::read_zero_byte_vec,
82 clippy::redundant_clone,
83 clippy::redundant_test_prefix,
84 clippy::redundant_type_annotations,
85 clippy::renamed_function_params,
86 clippy::ref_patterns,
87 clippy::rest_pat_in_fully_bound_structs,
88 clippy::return_and_then,
89 clippy::same_name_method,
90 clippy::semicolon_inside_block,
91 clippy::set_contains_or_insert,
92 clippy::shadow_unrelated,
93 clippy::significant_drop_in_scrutinee,
94 clippy::significant_drop_tightening,
95 clippy::single_option_map,
96 clippy::str_to_string,
97 clippy::string_add,
98 clippy::string_lit_as_bytes,
99 clippy::string_lit_chars_any,
100 clippy::string_slice,
101 clippy::suboptimal_flops,
102 clippy::suspicious_operation_groupings,
103 clippy::suspicious_xor_used_as_pow,
104 clippy::tests_outside_test_module,
105 clippy::todo,
106 clippy::too_long_first_doc_paragraph,
107 clippy::trailing_empty_array,
108 clippy::transmute_undefined_repr,
109 clippy::trivial_regex,
110 clippy::try_err,
111 clippy::undocumented_unsafe_blocks,
112 clippy::unimplemented,
113 clippy::uninhabited_references,
114 clippy::unnecessary_safety_comment,
115 clippy::unnecessary_safety_doc,
116 clippy::unnecessary_self_imports,
117 clippy::unnecessary_struct_initialization,
118 clippy::unused_peekable,
119 clippy::unused_result_ok,
120 clippy::unused_trait_names,
121 clippy::unwrap_in_result,
122 clippy::unwrap_used,
123 clippy::use_debug,
124 clippy::use_self,
125 clippy::useless_let_if_seq,
126 clippy::verbose_file_reads,
127 clippy::volatile_composites,
128 clippy::while_float,
129 clippy::wildcard_enum_match_arm,
130 ambiguous_negative_literals,
131 closure_returning_async_block,
132 future_incompatible,
133 impl_trait_redundant_captures,
134 let_underscore_drop,
135 macro_use_extern_crate,
136 meta_variable_misuse,
137 missing_copy_implementations,
138 missing_debug_implementations,
139 missing_docs,
140 redundant_lifetimes,
141 rust_2018_idioms,
142 single_use_lifetimes,
143 unit_bindings,
144 unnameable_types,
145 unreachable_pub,
146 unstable_features,
147 unused,
148 variant_size_differences
149)]
150
151#[cfg(test)]
153mod for_docs_only {
154 use syn as _;
155}
156
157#[doc(inline)]
158pub use synthez_codegen::ToTokens;
159#[doc(inline)]
160pub use synthez_core::{ext, field, has, spanned};
161pub use synthez_core::{
162 proc_macro2,
163 quote::{self, ToTokens},
164 syn,
165};
166
167#[doc(inline)]
168pub use self::{
169 ext::{Data as DataExt, Ident as IdentExt},
170 field::Required,
171 parse::{Attrs as ParseAttrs, BufferExt as ParseBufferExt},
172 spanned::Spanning,
173};
174
175pub mod parse {
176 #[doc(inline)]
179 pub use synthez_core::parse::{attr, err, ext};
180
181 #[doc(inline)]
182 pub use self::{attrs::Attrs, ext::ParseBuffer as BufferExt};
183
184 pub mod attrs {
185 #[doc(inline)]
191 pub use synthez_codegen::ParseAttrs as Attrs;
192 #[doc(inline)]
193 pub use synthez_core::parse::attrs::*;
194 }
195}