summaryrefslogtreecommitdiff
path: root/src/model
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2022-12-09 10:21:11 +0100
committerLaurenz <laurmaedje@gmail.com>2022-12-09 10:21:11 +0100
commitcd089b6194c57b2e8dff70efaa7cbd53035f7327 (patch)
treef5466a0e2f8633aa609276c0c2794911c7e9252a /src/model
parent495b525694aa5901385f3acad043b4a9f3ebb911 (diff)
Align set rule
Diffstat (limited to 'src/model')
-rw-r--r--src/model/eval.rs6
-rw-r--r--src/model/library.rs6
-rw-r--r--src/model/styles.rs18
3 files changed, 19 insertions, 11 deletions
diff --git a/src/model/eval.rs b/src/model/eval.rs
index 0ae8a0b1..53a393c3 100644
--- a/src/model/eval.rs
+++ b/src/model/eval.rs
@@ -429,7 +429,7 @@ impl Eval for ast::MathNode {
Self::Symbol(v) => (vm.items.symbol)(v.get().clone() + ":op".into()),
Self::Script(v) => v.eval(vm)?,
Self::Frac(v) => v.eval(vm)?,
- Self::Align(v) => v.eval(vm)?,
+ Self::AlignPoint(v) => v.eval(vm)?,
Self::Group(v) => v.eval(vm)?,
Self::Expr(v) => {
if let ast::Expr::Ident(ident) = v {
@@ -480,11 +480,11 @@ impl Eval for ast::Frac {
}
}
-impl Eval for ast::Align {
+impl Eval for ast::AlignPoint {
type Output = Content;
fn eval(&self, vm: &mut Vm) -> SourceResult<Self::Output> {
- Ok((vm.items.math_align)(self.count()))
+ Ok((vm.items.math_align_point)(self.count()))
}
}
diff --git a/src/model/library.rs b/src/model/library.rs
index 63bd5839..02eb9179 100644
--- a/src/model/library.rs
+++ b/src/model/library.rs
@@ -74,8 +74,8 @@ pub struct LangItems {
fn(base: Content, sub: Option<Content>, sup: Option<Content>) -> Content,
/// A fraction in a formula: `x/2`.
pub math_frac: fn(num: Content, denom: Content) -> Content,
- /// An alignment indicator in a formula: `&`, `&&`.
- pub math_align: fn(count: usize) -> Content,
+ /// An alignment point in a formula: `&`, `&&`.
+ pub math_align_point: fn(count: usize) -> Content,
}
impl Debug for LangItems {
@@ -107,7 +107,7 @@ impl Hash for LangItems {
self.math_atom.hash(state);
self.math_script.hash(state);
self.math_frac.hash(state);
- self.math_align.hash(state);
+ self.math_align_point.hash(state);
}
}
diff --git a/src/model/styles.rs b/src/model/styles.rs
index 37596b8d..b2c328fa 100644
--- a/src/model/styles.rs
+++ b/src/model/styles.rs
@@ -913,6 +913,14 @@ where
}
}
+impl Fold for Axes<Option<GenAlign>> {
+ type Output = Axes<GenAlign>;
+
+ fn fold(self, outer: Self::Output) -> Self::Output {
+ self.zip(outer).map(|(inner, outer)| inner.unwrap_or(outer))
+ }
+}
+
impl<T> Fold for Sides<T>
where
T: Fold,
@@ -920,7 +928,7 @@ where
type Output = Sides<T::Output>;
fn fold(self, outer: Self::Output) -> Self::Output {
- self.zip(outer, |inner, outer| inner.fold(outer))
+ self.zip(outer).map(|(inner, outer)| inner.fold(outer))
}
}
@@ -928,7 +936,7 @@ impl Fold for Sides<Option<Rel<Abs>>> {
type Output = Sides<Rel<Abs>>;
fn fold(self, outer: Self::Output) -> Self::Output {
- self.zip(outer, |inner, outer| inner.unwrap_or(outer))
+ self.zip(outer).map(|(inner, outer)| inner.unwrap_or(outer))
}
}
@@ -936,7 +944,7 @@ impl Fold for Sides<Option<Smart<Rel<Length>>>> {
type Output = Sides<Smart<Rel<Length>>>;
fn fold(self, outer: Self::Output) -> Self::Output {
- self.zip(outer, |inner, outer| inner.unwrap_or(outer))
+ self.zip(outer).map(|(inner, outer)| inner.unwrap_or(outer))
}
}
@@ -947,7 +955,7 @@ where
type Output = Corners<T::Output>;
fn fold(self, outer: Self::Output) -> Self::Output {
- self.zip(outer, |inner, outer| inner.fold(outer))
+ self.zip(outer).map(|(inner, outer)| inner.fold(outer))
}
}
@@ -955,7 +963,7 @@ impl Fold for Corners<Option<Rel<Abs>>> {
type Output = Corners<Rel<Abs>>;
fn fold(self, outer: Self::Output) -> Self::Output {
- self.zip(outer, |inner, outer| inner.unwrap_or(outer))
+ self.zip(outer).map(|(inner, outer)| inner.unwrap_or(outer))
}
}