brisk_it/
errors.rs

1//! Convenient function to generate errors
2
3/// Errors that are caused by bugs.
4pub fn impossible(span: proc_macro2::Span) -> proc_macro2::TokenStream {
5    return generic_error("Impossible error.", span);
6}
7
8/// Generic error.
9pub fn generic_error<T: std::fmt::Display>(
10    text: T,
11    span: proc_macro2::Span,
12) -> proc_macro2::TokenStream {
13    return syn::Error::new(span, text).into_compile_error().into();
14}
15
16/// Errors used for unknown properties
17pub fn unknown_property(prop: crate::component::PropertyValue) -> proc_macro2::TokenStream {
18    return generic_error(format!("Unknown property {}", prop.name), prop.name.span());
19}
20
21/// Errors used for missing required properties
22pub fn missing_property(component_name: &syn::Ident, prop_name: &str) -> proc_macro2::TokenStream {
23    return generic_error(
24        format!("Missing required property '{}'", prop_name),
25        component_name.span(),
26    );
27}