#[non_exhaustive]pub struct Text {
pub pos: Vec2D,
pub content: String,
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
The position that the text is drawn from.
content: String
The actual text content of the element
align: TextAlign
How the content should align to the pos
property
modifier: Modifier
A raw Modifier
, determining the appearance of the Text
Implementations§
Source§impl Text
impl Text
Sourcepub fn new(pos: Vec2D, content: &str, modifier: Modifier) -> Self
pub fn new(pos: Vec2D, content: &str, modifier: Modifier) -> Self
Create a new Text element with a position, content and modifier
§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 (line 19)
16fn main() {
17 let mut scale_view = ScaleFitView::new(ColChar::BACKGROUND);
18
19 let mut text = Text::new(Vec2D::ZERO, "This is some centered text!", Modifier::None)
20 .with_align(TextAlign::Centered);
21
22 let mut sprite =
23 Sprite::new(Vec2D::ZERO, TEXTURE, Modifier::None).with_align(TextAlign2D::CENTERED);
24
25 loop {
26 text.pos = scale_view.intended_size() / 2;
27 sprite.pos = scale_view.intended_size() / 2;
28 sprite.pos.y -= 5;
29
30 scale_view.update();
31 scale_view.view.draw(&text);
32 scale_view.view.draw(&sprite);
33 let _ = scale_view.view.display_render();
34
35 thread::sleep(Duration::from_millis(10));
36 }
37}
Sourcepub const fn with_align(self, align: TextAlign) -> Self
pub const fn with_align(self, align: TextAlign) -> Self
Return the Text
with an updated align
property. Consumes the original Text
Examples found in repository?
examples/self-resizing.rs (line 20)
16fn main() {
17 let mut scale_view = ScaleFitView::new(ColChar::BACKGROUND);
18
19 let mut text = Text::new(Vec2D::ZERO, "This is some centered text!", Modifier::None)
20 .with_align(TextAlign::Centered);
21
22 let mut sprite =
23 Sprite::new(Vec2D::ZERO, TEXTURE, Modifier::None).with_align(TextAlign2D::CENTERED);
24
25 loop {
26 text.pos = scale_view.intended_size() / 2;
27 sprite.pos = scale_view.intended_size() / 2;
28 sprite.pos.y -= 5;
29
30 scale_view.update();
31 scale_view.view.draw(&text);
32 scale_view.view.draw(&sprite);
33 let _ = scale_view.view.display_render();
34
35 thread::sleep(Duration::from_millis(10));
36 }
37}
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Text
impl RefUnwindSafe for Text
impl Send for Text
impl Sync for Text
impl Unpin for Text
impl UnwindSafe for Text
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