pub enum Fragment {
Line(Line),
MarkerLine(MarkerLine),
Circle(Circle),
Arc(Arc),
Polygon(Polygon),
Rect(Rect),
CellText(CellText),
Text(Text),
}
Expand description
ⓘ
0 1 2 3 4 B C D
0┌─┬─┬─┬─┐ A┌─┬─┬─┬─┐E
1├─┼─┼─┼─┤ │ │ │ │ │
2├─┼─┼─┼─┤ F├─G─H─I─┤J
3├─┼─┼─┼─┤ │ │ │ │ │
4├─┼─┼─┼─┤ K├─L─M─N─┤O
5├─┼─┼─┼─┤ │ │ │ │ │
6├─┼─┼─┼─┤ P├─Q─R─S─┤T
7├─┼─┼─┼─┤ │ │ │ │ │
8└─┴─┴─┴─┘ U└─┴─┴─┴─┘Y
``` V W X
Variants§
Line(Line)
MarkerLine(MarkerLine)
Circle(Circle)
Arc(Arc)
Polygon(Polygon)
Rect(Rect)
CellText(CellText)
Text(Text)
Implementations§
source§impl Fragment
impl Fragment
sourcepub fn match_unicode(fragments: &[Fragment]) -> Option<char>
pub fn match_unicode(fragments: &[Fragment]) -> Option<char>
get the character that matches the shape present on this cell
pub fn hit(&self, start: Point, end: Point) -> bool
sourcepub fn is_intersecting(&self, bbox: &Aabb) -> bool
pub fn is_intersecting(&self, bbox: &Aabb) -> bool
check if this fragment is intersecting with this bounding box Note: if intersection logic requires testing the solid shape inside the polygon use the ConvexPolygon of each shape instead of Polyline
sourcepub fn is_inside(&self, bbox: &Aabb) -> bool
pub fn is_inside(&self, bbox: &Aabb) -> bool
check if this fragment can be contain in the specified bounding box bbox
sourcepub fn absolute_position(&self, cell: Cell) -> Self
pub fn absolute_position(&self, cell: Cell) -> Self
recompute the end points of this fragment offset by the cell location
pub fn align(&self) -> Self
pub fn as_line(&self) -> Option<&Line>
pub fn as_rect(&self) -> Option<&Rect>
pub fn as_polygon(&self) -> Option<&Polygon>
pub fn as_arc(&self) -> Option<&Arc>
pub fn as_cell_text(&self) -> Option<&CellText>
pub fn as_text(&self) -> Option<&Text>
sourcepub fn as_css_tag(&self) -> Vec<String>
pub fn as_css_tag(&self) -> Vec<String>
if this is a cell text and is wrapped in braces then it is a css tag for the container
pub fn as_circle(&self) -> Option<&Circle>
pub fn is_circle(&self) -> bool
pub fn is_rect(&self) -> bool
pub fn is_text(&self) -> bool
pub fn is_cell_text(&self) -> bool
pub fn is_broken(&self) -> bool
Trait Implementations§
source§impl Merge for Fragment
impl Merge for Fragment
source§fn merge(&self, other: &Self) -> Option<Self>
fn merge(&self, other: &Self) -> Option<Self>
merge this fragment to the other fragment if it is possible returns None if the fragment can not be merge
source§fn merge_recursive(items: impl IntoIterator<Item = Self>) -> Vec<Self>where
Self: Sized,
fn merge_recursive(items: impl IntoIterator<Item = Self>) -> Vec<Self>where Self: Sized,
Merge all items until the size don’t change
source§fn second_pass_merge(items: impl IntoIterator<Item = Self>) -> Vec<Self>where
Self: Sized,
fn second_pass_merge(items: impl IntoIterator<Item = Self>) -> Vec<Self>where Self: Sized,
Iterate through each items in the group and merge that items
that can be merged
source§impl Ord for Fragment
impl Ord for Fragment
source§impl PartialEq<Fragment> for Fragment
impl PartialEq<Fragment> for Fragment
source§impl PartialOrd<Fragment> for Fragment
impl PartialOrd<Fragment> for Fragment
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moreimpl Eq for Fragment
Auto Trait Implementations§
impl RefUnwindSafe for Fragment
impl Send for Fragment
impl Sync for Fragment
impl Unpin for Fragment
impl UnwindSafe for Fragment
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<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
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, Global>) -> Rc<dyn Any, Global>
fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>
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.§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.