Trait kas_core::layout::RulesSolver
source · pub trait RulesSolver {
type Storage: Clone;
type ChildInfo;
fn for_child<CR: FnOnce(AxisInfo) -> SizeRules>(
&mut self,
storage: &mut Self::Storage,
child_info: Self::ChildInfo,
child_rules: CR
);
fn finish(self, storage: &mut Self::Storage) -> SizeRules;
}
Expand description
A SizeRules
solver for layouts
Typically, a solver is invoked twice, once for each axis, before the
corresponding RulesSetter
is invoked. This is managed by SolveCache
.
Implementations require access to storage able to persist between multiple
solver runs and a subsequent setter run. This storage is of type
RulesSolver::Storage
and is passed via reference to the constructor.
Required Associated Types§
sourcetype ChildInfo
type ChildInfo
Type required by RulesSolver::for_child
(see implementation documentation)