1mod context;
20
21use context::PowerSupplyContext;
22use proc_macro::TokenStream;
23use syn::{parse_macro_input, DeriveInput};
24
25#[proc_macro_derive(Gauge)]
26pub fn derive_gauge(input: TokenStream) -> TokenStream {
27 let input = parse_macro_input!(input as DeriveInput);
28
29 PowerSupplyContext::new(input, "GaugeBase")
30 .generate()
31 .into()
32}
33
34#[proc_macro_derive(GaugeAdv)]
35pub fn derive_gauge_advance(input: TokenStream) -> TokenStream {
36 let input = parse_macro_input!(input as DeriveInput);
37
38 PowerSupplyContext::new(input, "GaugeAdvance")
39 .generate()
40 .into()
41}
42
43#[proc_macro_derive(Charger)]
44pub fn derive_charger(input: TokenStream) -> TokenStream {
45 let input = parse_macro_input!(input as DeriveInput);
46
47 PowerSupplyContext::new(input, "ChargerBase")
48 .generate()
49 .into()
50}