
# Objective - Fixes #8282 - Update `syn` to 2.0, `encase` to 0.6, `glam` to 0.24 and `hexasphere` to 9.0 Blocked ~~on https://github.com/teoxoy/encase/pull/42~~ and ~~on https://github.com/OptimisticPeach/hexasphere/pull/17~~ --------- Co-authored-by: Nicola Papale <nicopap@users.noreply.github.com> Co-authored-by: JoJoJet <21144246+JoJoJet@users.noreply.github.com>
33 lines
823 B
Rust
33 lines
823 B
Rust
use syn::{Expr, ExprLit, Lit};
|
|
|
|
use crate::symbol::Symbol;
|
|
|
|
pub fn get_lit_str(attr_name: Symbol, value: &Expr) -> syn::Result<&syn::LitStr> {
|
|
if let Expr::Lit(ExprLit {
|
|
lit: Lit::Str(lit), ..
|
|
}) = &value
|
|
{
|
|
Ok(lit)
|
|
} else {
|
|
Err(syn::Error::new_spanned(
|
|
value,
|
|
format!("expected {attr_name} attribute to be a string: `{attr_name} = \"...\"`"),
|
|
))
|
|
}
|
|
}
|
|
|
|
pub fn get_lit_bool(attr_name: Symbol, value: &Expr) -> syn::Result<bool> {
|
|
if let Expr::Lit(ExprLit {
|
|
lit: Lit::Bool(lit),
|
|
..
|
|
}) = &value
|
|
{
|
|
Ok(lit.value())
|
|
} else {
|
|
Err(syn::Error::new_spanned(
|
|
value,
|
|
format!("expected {attr_name} attribute to be a bool value, `true` or `false`: `{attr_name} = ...`"),
|
|
))?
|
|
}
|
|
}
|