1#![doc(
12 html_logo_url = "https://avatars.githubusercontent.com/u/91469139?s=128",
13 html_favicon_url = "https://avatars.githubusercontent.com/u/91469139?s=256"
14)]
15#![doc = include_str!("../README.md")]
16#![cfg_attr(docsrs, feature(doc_auto_cfg))]
17#![deny(
18 macro_use_extern_crate,
19 nonstandard_style,
20 rust_2018_idioms,
21 rustdoc::all,
22 trivial_casts,
23 trivial_numeric_casts
24)]
25#![forbid(non_ascii_idents, unsafe_code)]
26#![warn(
27 clippy::absolute_paths,
28 clippy::allow_attributes,
29 clippy::allow_attributes_without_reason,
30 clippy::as_conversions,
31 clippy::as_ptr_cast_mut,
32 clippy::assertions_on_result_states,
33 clippy::branches_sharing_code,
34 clippy::cfg_not_test,
35 clippy::clear_with_drain,
36 clippy::clone_on_ref_ptr,
37 clippy::collection_is_never_read,
38 clippy::create_dir,
39 clippy::dbg_macro,
40 clippy::debug_assert_with_mut_call,
41 clippy::decimal_literal_representation,
42 clippy::default_union_representation,
43 clippy::derive_partial_eq_without_eq,
44 clippy::else_if_without_else,
45 clippy::empty_drop,
46 clippy::empty_structs_with_brackets,
47 clippy::equatable_if_let,
48 clippy::empty_enum_variants_with_brackets,
49 clippy::exit,
50 clippy::expect_used,
51 clippy::fallible_impl_from,
52 clippy::filetype_is_file,
53 clippy::float_cmp_const,
54 clippy::fn_to_numeric_cast_any,
55 clippy::format_push_string,
56 clippy::get_unwrap,
57 clippy::if_then_some_else_none,
58 clippy::imprecise_flops,
59 clippy::infinite_loop,
60 clippy::iter_on_empty_collections,
61 clippy::iter_on_single_items,
62 clippy::iter_over_hash_type,
63 clippy::iter_with_drain,
64 clippy::large_include_file,
65 clippy::large_stack_frames,
66 clippy::let_underscore_untyped,
67 clippy::lossy_float_literal,
68 clippy::map_err_ignore,
69 clippy::map_with_unused_argument_over_ranges,
70 clippy::mem_forget,
71 clippy::missing_assert_message,
72 clippy::missing_asserts_for_indexing,
73 clippy::missing_const_for_fn,
74 clippy::missing_docs_in_private_items,
75 clippy::module_name_repetitions,
76 clippy::multiple_inherent_impl,
77 clippy::multiple_unsafe_ops_per_block,
78 clippy::mutex_atomic,
79 clippy::mutex_integer,
80 clippy::needless_collect,
81 clippy::needless_pass_by_ref_mut,
82 clippy::needless_raw_strings,
83 clippy::non_zero_suggestions,
84 clippy::nonstandard_macro_braces,
85 clippy::option_if_let_else,
86 clippy::or_fun_call,
87 clippy::panic_in_result_fn,
88 clippy::partial_pub_fields,
89 clippy::pathbuf_init_then_push,
90 clippy::pedantic,
91 clippy::print_stderr,
92 clippy::print_stdout,
93 clippy::pub_without_shorthand,
94 clippy::rc_buffer,
95 clippy::rc_mutex,
96 clippy::read_zero_byte_vec,
97 clippy::redundant_clone,
98 clippy::redundant_type_annotations,
99 clippy::renamed_function_params,
100 clippy::ref_patterns,
101 clippy::rest_pat_in_fully_bound_structs,
102 clippy::same_name_method,
103 clippy::semicolon_inside_block,
104 clippy::set_contains_or_insert,
105 clippy::shadow_unrelated,
106 clippy::significant_drop_in_scrutinee,
107 clippy::significant_drop_tightening,
108 clippy::str_to_string,
109 clippy::string_add,
110 clippy::string_lit_as_bytes,
111 clippy::string_lit_chars_any,
112 clippy::string_slice,
113 clippy::string_to_string,
114 clippy::suboptimal_flops,
115 clippy::suspicious_operation_groupings,
116 clippy::suspicious_xor_used_as_pow,
117 clippy::tests_outside_test_module,
118 clippy::todo,
119 clippy::too_long_first_doc_paragraph,
120 clippy::trailing_empty_array,
121 clippy::transmute_undefined_repr,
122 clippy::trivial_regex,
123 clippy::try_err,
124 clippy::undocumented_unsafe_blocks,
125 clippy::unimplemented,
126 clippy::uninhabited_references,
127 clippy::unnecessary_safety_comment,
128 clippy::unnecessary_safety_doc,
129 clippy::unnecessary_self_imports,
130 clippy::unnecessary_struct_initialization,
131 clippy::unneeded_field_pattern,
132 clippy::unused_peekable,
133 clippy::unused_result_ok,
134 clippy::unused_trait_names,
135 clippy::unwrap_in_result,
136 clippy::unwrap_used,
137 clippy::use_debug,
138 clippy::use_self,
139 clippy::useless_let_if_seq,
140 clippy::verbose_file_reads,
141 clippy::while_float,
142 clippy::wildcard_enum_match_arm,
143 explicit_outlives_requirements,
144 future_incompatible,
145 let_underscore_drop,
146 meta_variable_misuse,
147 missing_abi,
148 missing_copy_implementations,
149 missing_debug_implementations,
150 missing_docs,
151 redundant_lifetimes,
152 semicolon_in_expressions_from_macros,
153 single_use_lifetimes,
154 unit_bindings,
155 unnameable_types,
156 unreachable_pub,
157 unsafe_op_in_unsafe_fn,
158 unstable_features,
159 unused_crate_dependencies,
160 unused_extern_crates,
161 unused_import_braces,
162 unused_lifetimes,
163 unused_macro_rules,
164 unused_qualifications,
165 unused_results,
166 variant_size_differences
167)]
168
169pub mod ast;
170mod combinator;
171#[cfg(feature = "into-regex")]
172pub mod expand;
173pub mod parse;
174
175#[doc(inline)]
176pub use self::ast::{
177 Alternation, Alternative, Expression, Optional, Parameter,
178 SingleAlternation, SingleExpression, Spanned,
179};