Struct gemini_engine::elements::ascii::Text
source · #[non_exhaustive]pub struct Text<'a> {
pub pos: Vec2D,
pub content: &'a str,
pub align: TextAlign,
pub modifier: Modifier,
}Expand description
Displays text at the given position
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.pos: Vec2D§content: &'a strThe actual text content of the element
align: TextAlignHow the content should align to the position
modifier: ModifierA raw Modifier, determining the appearance of the Text
Implementations§
source§impl<'a> Text<'a>
impl<'a> Text<'a>
sourcepub fn with_align(
pos: Vec2D,
content: &str,
align: TextAlign,
modifier: Modifier
) -> Text<'_>
pub fn with_align( pos: Vec2D, content: &str, align: TextAlign, modifier: Modifier ) -> Text<'_>
Create a Text element with an align parameter to set the Text’s align (see the TextAlign documentation)
Panics
This function will panic if the content contains a newline, as Text only works with single lines. For multi-line strings, see Sprite
Examples found in repository?
examples/self-resizing.rs (lines 11-16)
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
fn main() {
let mut view = View::new(100, 100, ColChar::BACKGROUND).with_block_until_resized(true);
let mut text = Text::with_align(
view.center(),
"This is some centered text!",
TextAlign::Centered,
Modifier::None,
);
loop {
let terminal_size = termsize::get().unwrap();
view.width = terminal_size.cols as usize;
view.height = terminal_size.rows as usize - 2;
text.pos = view.center();
view.clear();
view.blit(&text, Wrapping::Wrap);
view.display_render().unwrap();
sleep(Duration::from_millis(10))
}
}Trait Implementations§
source§impl ViewElement for Text<'_>
impl ViewElement for Text<'_>
source§fn active_pixels(&self) -> Vec<Pixel>
fn active_pixels(&self) -> Vec<Pixel>
Return a vector of the element’s
Pixels - A ColChar. If your whole object is a solid colour, consider using utils::points_to_pixels() which will add the same ColChar to every point and can then be used as this function’s outputsource§fn active_points(&self) -> Vec<Vec2D>
fn active_points(&self) -> Vec<Vec2D>
Return the positions the
ViewElement occupies, essentially active_pixels() without the ColChars. This has a default setting that extracts the Vec2Ds from active_pixels but you can set it to something else to make it fasterAuto Trait Implementations§
impl<'a> RefUnwindSafe for Text<'a>
impl<'a> Send for Text<'a>
impl<'a> Sync for Text<'a>
impl<'a> Unpin for Text<'a>
impl<'a> UnwindSafe for Text<'a>
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