pub struct RowSetter<D, T, S>where
T: RowTemp,
S: RowStorage,{ /* private fields */ }
Expand description
A RulesSetter
for rows (and, without loss of generality, for columns).
This is parameterised over:
D:
Directional
— whether this represents a row or a columnT:
RowTemp
— temporary storage typeS:
RowStorage
— persistent storage type
Implementations§
source§impl<D, T, S> RowSetter<D, T, S>
impl<D, T, S> RowSetter<D, T, S>
sourcepub fn new(rect: Rect, _: (D, usize), storage: &mut S) -> RowSetter<D, T, S>
pub fn new(rect: Rect, _: (D, usize), storage: &mut S) -> RowSetter<D, T, S>
Construct
Argument order is consistent with other RulesSetter
s.
rect
: theRect
within which to position children(direction, len)
: direction and number of itemsstorage
: access to the solver’s storage
sourcepub fn new_unsolved(
rect: Rect,
_: (D, usize),
storage: &mut S
) -> RowSetter<D, T, S>
pub fn new_unsolved( rect: Rect, _: (D, usize), storage: &mut S ) -> RowSetter<D, T, S>
Construct without solving
In this case, it is assumed that the storage was already solved by a
previous RowSetter
. The user should optionally call solve_range
on
any ranges needing updating and finally call update_offsets
before
using this RowSetter
to calculate child positions.
pub fn update_offsets(&mut self, storage: &mut S)
pub fn solve_range(&mut self, storage: &mut S, range: Range<usize>, width: i32)
Trait Implementations§
source§impl<D, T, S> RulesSetter for RowSetter<D, T, S>
impl<D, T, S> RulesSetter for RowSetter<D, T, S>
§type ChildInfo = usize
type ChildInfo = usize
Type required by
RulesSolver::for_child
(see implementation documentation)source§fn child_rect(
&mut self,
storage: &mut <RowSetter<D, T, S> as RulesSetter>::Storage,
index: <RowSetter<D, T, S> as RulesSetter>::ChildInfo
) -> Rect
fn child_rect( &mut self, storage: &mut <RowSetter<D, T, S> as RulesSetter>::Storage, index: <RowSetter<D, T, S> as RulesSetter>::ChildInfo ) -> Rect
Called once for each child. The order is unimportant.
source§fn maximal_rect_of(
&mut self,
storage: &mut <RowSetter<D, T, S> as RulesSetter>::Storage,
index: <RowSetter<D, T, S> as RulesSetter>::ChildInfo
) -> Rect
fn maximal_rect_of( &mut self, storage: &mut <RowSetter<D, T, S> as RulesSetter>::Storage, index: <RowSetter<D, T, S> as RulesSetter>::ChildInfo ) -> Rect
Calculates the maximal rect of a given child Read more
Auto Trait Implementations§
impl<D, T, S> RefUnwindSafe for RowSetter<D, T, S>
impl<D, T, S> Send for RowSetter<D, T, S>
impl<D, T, S> Sync for RowSetter<D, T, S>
impl<D, T, S> Unpin for RowSetter<D, T, S>
impl<D, T, S> UnwindSafe for RowSetter<D, T, S>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<S, T> CastApprox<T> for Swhere
T: ConvApprox<S>,
impl<S, T> CastApprox<T> for Swhere
T: ConvApprox<S>,
§fn try_cast_approx(self) -> Result<T, Error>
fn try_cast_approx(self) -> Result<T, Error>
§fn cast_approx(self) -> T
fn cast_approx(self) -> T
§impl<S, T> CastFloat<T> for Swhere
T: ConvFloat<S>,
impl<S, T> CastFloat<T> for Swhere
T: ConvFloat<S>,
§fn cast_trunc(self) -> T
fn cast_trunc(self) -> T
Cast to integer, truncating Read more
§fn cast_nearest(self) -> T
fn cast_nearest(self) -> T
Cast to the nearest integer Read more
§fn cast_floor(self) -> T
fn cast_floor(self) -> T
Cast the floor to an integer Read more
§fn try_cast_trunc(self) -> Result<T, Error>
fn try_cast_trunc(self) -> Result<T, Error>
Try converting to integer with truncation Read more
§fn try_cast_nearest(self) -> Result<T, Error>
fn try_cast_nearest(self) -> Result<T, Error>
Try converting to the nearest integer Read more
§fn try_cast_floor(self) -> Result<T, Error>
fn try_cast_floor(self) -> Result<T, Error>
Try converting the floor to an integer Read more
§fn try_cast_ceil(self) -> Result<T, Error>
fn try_cast_ceil(self) -> Result<T, Error>
Try convert the ceiling to an integer Read more
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.