pub fn impossible(span: proc_macro2::Span) -> proc_macro2::TokenStream {
return generic_error("Impossible error.", span);
}
pub fn generic_error<T: std::fmt::Display>(
text: T,
span: proc_macro2::Span,
) -> proc_macro2::TokenStream {
return syn::Error::new(span, text).into_compile_error().into();
}
pub fn unknown_property(prop: crate::component::PropertyValue) -> proc_macro2::TokenStream {
return generic_error(format!("Unknown property {}", prop.name), prop.name.span());
}
pub fn missing_property(component_name: &syn::Ident, prop_name: &str) -> proc_macro2::TokenStream {
return generic_error(
format!("Missing required property '{}'", prop_name),
component_name.span(),
);
}