#[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: Vec2DThe position that the text is drawn from.
content: StringThe actual text content of the element
align: TextAlignHow the content should align to the pos property
modifier: ModifierA 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)
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
fn main() {
let mut scale_view = ScaleFitView::new(ColChar::BACKGROUND);
let mut text = Text::new(Vec2D::ZERO, "This is some centered text!", Modifier::None)
.with_align(TextAlign::Centered);
let mut sprite =
Sprite::new(Vec2D::ZERO, TEXTURE, Modifier::None).with_align(TextAlign2D::CENTERED);
loop {
text.pos = scale_view.intended_size() / 2;
sprite.pos = scale_view.intended_size() / 2;
sprite.pos.y -= 5;
scale_view.update();
scale_view.view.draw(&text);
scale_view.view.draw(&sprite);
let _ = scale_view.view.display_render();
sleep(Duration::from_millis(10));
}
}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)
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
fn main() {
let mut scale_view = ScaleFitView::new(ColChar::BACKGROUND);
let mut text = Text::new(Vec2D::ZERO, "This is some centered text!", Modifier::None)
.with_align(TextAlign::Centered);
let mut sprite =
Sprite::new(Vec2D::ZERO, TEXTURE, Modifier::None).with_align(TextAlign2D::CENTERED);
loop {
text.pos = scale_view.intended_size() / 2;
sprite.pos = scale_view.intended_size() / 2;
sprite.pos.y -= 5;
scale_view.update();
scale_view.view.draw(&text);
scale_view.view.draw(&sprite);
let _ = scale_view.view.display_render();
sleep(Duration::from_millis(10));
}
}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