derive_tools/
lib.rs

1#![ cfg_attr( feature = "no_std", no_std ) ]
2#![ doc( html_logo_url = "https://raw.githubusercontent.com/Wandalen/wTools/master/asset/img/logo_v3_trans_square.png" ) ]
3#![ doc( html_favicon_url = "https://raw.githubusercontent.com/Wandalen/wTools/alpha/asset/img/logo_v3_trans_square_icon_small_v2.ico" ) ]
4#![ doc( html_root_url = "https://docs.rs/derive_tools/latest/derive_tools/" ) ]
5#![ doc = include_str!( concat!( env!( "CARGO_MANIFEST_DIR" ), "/", "Readme.md" ) ) ]
6
7// // xxx : implement derive new
8//
9// #[ derive( Debug, PartialEq, Default ) ]
10// pub struct Property< Name >
11// {
12//   name : Name,
13//   description : String,
14//   code : isize,
15// }
16//
17// /// generated by new
18// impl< Name > Property< Name >
19// {
20//   #[ inline ]
21//   pub fn new< Description, Code >( name : Name, description : Description, code : Code ) -> Self
22//   where
23//     Name : core::convert::Into< Name >,
24//     Description : core::convert::Into< String >,
25//     Code : core::convert::Into< isize >,
26//   {
27//     Self { name : name.into(), description : description.into(), code : code.into() }
28//   }
29// }
30
31// #[ cfg( feature = "enabled" ) ]
32// pub mod wtools;
33
34#[ cfg( all( feature = "derive_more" ) ) ]
35#[ allow( unused_imports ) ]
36mod derive_more
37{
38  #[ cfg( feature = "derive_add" ) ]
39  pub use ::derive_more::{ Add, Sub };
40  #[ cfg( feature = "derive_add_assign" ) ]
41  pub use ::derive_more::{ AddAssign, SubAssign };
42  #[ cfg( feature = "derive_constructor" ) ]
43  pub use ::derive_more::Constructor;
44  #[ cfg( feature = "derive_error" ) ]
45  pub use ::derive_more::Error;
46  #[ cfg( feature = "derive_into" ) ]
47  pub use ::derive_more::Into;
48  // #[ cfg( feature = "derive_iterator" ) ]
49  // pub use ::derive_more::Iterator;
50  #[ cfg( feature = "derive_into_iterator" ) ]
51  pub use ::derive_more::IntoIterator;
52  #[ cfg( feature = "derive_mul" ) ]
53  pub use ::derive_more::{ Mul, Div };
54  #[ cfg( feature = "derive_mul_assign" ) ]
55  pub use ::derive_more::{ MulAssign, DivAssign };
56  #[ cfg( feature = "derive_sum" ) ]
57  pub use ::derive_more::Sum;
58  #[ cfg( feature = "derive_try_into" ) ]
59  pub use ::derive_more::TryInto;
60  #[ cfg( feature = "derive_is_variant" ) ]
61  pub use ::derive_more::IsVariant;
62  #[ cfg( feature = "derive_unwrap" ) ]
63  pub use ::derive_more::Unwrap;
64
65  // qqq : list all
66  // qqq : make sure all features of derive_more is reexported
67}
68
69#[ doc( inline ) ]
70#[ cfg( any( feature = "derive_variadic_from", feature = "type_variadic_from" ) ) ]
71pub use variadic_from as variadic;
72
73/// Namespace with dependencies.
74
75#[ allow( unused_imports ) ]
76#[ cfg( feature = "enabled" ) ]
77pub mod dependency
78{
79
80  #[ doc( inline ) ]
81  pub use ::derive_tools_meta;
82
83  #[ doc( inline ) ]
84  #[ cfg( feature = "derive_clone_dyn" ) ]
85  pub use ::clone_dyn::{ self, dependency::* };
86
87  #[ doc( inline ) ]
88  #[ cfg( any( feature = "derive_variadic_from", feature = "type_variadic_from" ) ) ]
89  pub use ::variadic_from::{ self, dependency::* };
90
91  #[ doc( inline ) ]
92  #[ cfg( feature = "derive_more" ) ]
93  pub use ::derive_more;
94  #[ doc( inline ) ]
95  #[ cfg( feature = "derive_strum" ) ]
96  pub use ::strum;
97  #[ doc( inline ) ]
98  #[ cfg( feature = "parse_display" ) ]
99  pub use ::parse_display;
100
101}
102
103#[ doc( inline ) ]
104#[ cfg( feature = "enabled" ) ]
105#[ allow( unused_imports ) ]
106pub use own::*;
107
108/// Own namespace of the module.
109#[ cfg( feature = "enabled" ) ]
110#[ allow( unused_imports ) ]
111pub mod own
112{
113  use super::*;
114  #[ doc( inline ) ]
115  pub use orphan::*;
116  #[ cfg( feature = "derive_clone_dyn" ) ]
117  #[ doc( inline ) ]
118  pub use ::clone_dyn::orphan::*;
119}
120
121/// Orphan namespace of the module.
122#[ cfg( feature = "enabled" ) ]
123#[ allow( unused_imports ) ]
124pub mod orphan
125{
126  use super::*;
127  #[ doc( inline ) ]
128  pub use exposed::*;
129}
130
131/// Exposed namespace of the module.
132#[ cfg( feature = "enabled" ) ]
133#[ allow( unused_imports ) ]
134pub mod exposed
135{
136  use super::*;
137  #[ doc( inline ) ]
138  pub use prelude::*;
139
140  #[ cfg( all( feature = "derive_more" ) ) ]
141  #[ doc( inline ) ]
142  pub use super::derive_more::*;
143
144  #[ cfg( feature = "derive_strum" ) ]
145  #[ doc( inline ) ]
146  pub use ::strum::*;
147  // qqq : xxx : name all
148
149  #[ cfg( any( feature = "derive_variadic_from", feature = "type_variadic_from" ) ) ]
150  #[ doc( inline ) ]
151  pub use ::variadic_from::exposed::*;
152
153  #[ cfg( feature = "derive_strum" ) ]
154  #[ doc( inline ) ]
155  pub use ::strum::*;
156
157  #[ cfg( feature = "derive_display" ) ]
158  #[ doc( inline ) ]
159  pub use ::parse_display::Display;
160
161  #[ cfg( feature = "derive_from_str" ) ]
162  #[ doc( inline ) ]
163  pub use ::parse_display::FromStr;
164
165  #[ cfg( feature = "derive_clone_dyn" ) ]
166  #[ doc( inline ) ]
167  pub use ::clone_dyn::exposed::*;
168
169  #[ cfg( feature = "derive_clone_dyn" ) ]
170  #[ doc( inline ) ]
171  pub use ::clone_dyn;
172
173  #[ doc( inline ) ]
174  pub use ::derive_tools_meta::*;
175
176  #[ doc( inline ) ]
177  #[ cfg( feature = "derive_from" ) ]
178  pub use ::derive_tools_meta::From;
179
180  #[ doc( inline ) ]
181  #[ cfg( feature = "derive_inner_from" ) ]
182  pub use ::derive_tools_meta::InnerFrom;
183
184}
185
186/// Prelude to use essentials: `use my_module::prelude::*`.
187#[ cfg( feature = "enabled" ) ]
188#[ allow( unused_imports ) ]
189pub mod prelude
190{
191  use super::*;
192  #[ cfg( feature = "derive_clone_dyn" ) ]
193  #[ doc( inline ) ]
194  pub use ::clone_dyn;
195
196  #[ cfg( feature = "derive_clone_dyn" ) ]
197  #[ doc( inline ) ]
198  pub use ::clone_dyn::prelude::*;
199
200  #[ cfg( any( feature = "derive_variadic_from", feature = "type_variadic_from" ) ) ]
201  #[ doc( inline ) ]
202  pub use ::variadic_from::prelude::*;
203
204}
205
206// xxx : minimize dependendencies
207// Adding aho-corasick v1.1.3
208// Adding cfg_aliases v0.1.1 (latest: v0.2.1)
209// Adding clone_dyn v0.24.0
210// Adding clone_dyn_meta v0.24.0
211// Adding clone_dyn_types v0.23.0
212// Adding collection_tools v0.12.0
213// Adding const_format v0.2.33
214// Adding const_format_proc_macros v0.2.33
215// Adding convert_case v0.6.0
216// Adding derive_more v1.0.0
217// Adding derive_more-impl v1.0.0
218// Adding derive_tools v0.28.0
219// Adding derive_tools_meta v0.27.0
220// Adding either v1.13.0
221// Adding former_types v2.8.0
222// Adding heck v0.4.1 (latest: v0.5.0)
223// Adding interval_adapter v0.24.0
224// Adding iter_tools v0.21.0
225// Adding itertools v0.11.0 (latest: v0.13.0)
226// Adding macro_tools v0.40.0
227// Adding parse-display v0.8.2 (latest: v0.10.0)
228// Adding parse-display-derive v0.8.2 (latest: v0.10.0)
229// Adding phf v0.10.1 (latest: v0.11.2)
230// Adding phf_generator v0.10.0 (latest: v0.11.2)
231// Adding phf_macros v0.10.0 (latest: v0.11.2)
232// Adding phf_shared v0.10.0 (latest: v0.11.2)
233// Adding proc-macro-hack v0.5.20+deprecated
234// Adding regex v1.10.6
235// Adding regex-automata v0.4.7
236// Adding regex-syntax v0.7.5 (latest: v0.8.4)
237// Adding regex-syntax v0.8.4
238// Adding rustversion v1.0.17
239// Adding structmeta v0.2.0 (latest: v0.3.0)
240// Adding structmeta-derive v0.2.0 (latest: v0.3.0)
241// Adding strum v0.25.0 (latest: v0.26.3)
242// Adding strum_macros v0.25.3 (latest: v0.26.4)
243// Adding unicode-segmentation v1.11.0
244// Adding unicode-xid v0.2.5
245// Adding variadic_from v0.23.0