summaryrefslogtreecommitdiffstats
path: root/src/tools/rustfmt/config_proc_macro/src/config_type.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/tools/rustfmt/config_proc_macro/src/config_type.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/tools/rustfmt/config_proc_macro/src/config_type.rs b/src/tools/rustfmt/config_proc_macro/src/config_type.rs
new file mode 100644
index 000000000..93a78b846
--- /dev/null
+++ b/src/tools/rustfmt/config_proc_macro/src/config_type.rs
@@ -0,0 +1,15 @@
+use proc_macro2::TokenStream;
+
+use crate::item_enum::define_config_type_on_enum;
+use crate::item_struct::define_config_type_on_struct;
+
+/// Defines `config_type` on enum or struct.
+// FIXME: Implement this on struct.
+pub fn define_config_type(input: &syn::Item) -> TokenStream {
+ match input {
+ syn::Item::Struct(st) => define_config_type_on_struct(st),
+ syn::Item::Enum(en) => define_config_type_on_enum(en),
+ _ => panic!("Expected enum or struct"),
+ }
+ .unwrap()
+}