Trait kas::layout::RulesSolver [−][src]
pub trait RulesSolver {
type Storage: Clone;
type ChildInfo;
fn for_child<CR>(
&mut self,
storage: &mut Self::Storage,
child_info: Self::ChildInfo,
child_rules: CR
)
where
CR: FnOnce(AxisInfo) -> SizeRules;
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.
Associated Types
Type required by RulesSolver::for_child
(see implementation documentation)
Required methods
Called once for each child. For most layouts the order is important.