use typst_syntax::Spanned;
use crate::diag::bail;
use crate::foundations::{elem, Content, Value};
use crate::math::Mathy;
#[elem(title = "Fraction", Mathy)]
pub struct FracElem {
#[required]
pub num: Content,
#[required]
pub denom: Content,
}
#[elem(title = "Binomial", Mathy)]
pub struct BinomElem {
#[required]
pub upper: Content,
#[required]
#[variadic]
#[parse(
let values = args.all::<Spanned<Value>>()?;
if values.is_empty() {
// Prevents one element binomials
bail!(args.span, "missing argument: lower");
}
values.into_iter().map(|spanned| spanned.v.display()).collect()
)]
pub lower: Vec<Content>,
}