Struct ascii_forge::renderer::buffer::Buffer
source · pub struct Buffer { /* private fields */ }
Expand description
A screen buffer that can be rendered to, has a size
This is the backbone of ascii-forge
Example
use ascii_forge::prelude::*;
// A 30x30 buffer window
let mut buffer = Buffer::new(30, 30);
// Render Hello World to the top left of the buffer
render!(
buffer, {
(0, 0) => "Hello World!"
}
);
Implementations§
source§impl Buffer
impl Buffer
sourcepub fn new(size: impl Into<Vec2>) -> Self
pub fn new(size: impl Into<Vec2>) -> Self
Creates a new buffer of empty cells with the given size.
sourcepub fn set<C: Into<Cell>>(&mut self, loc: impl Into<Vec2>, cell: C)
pub fn set<C: Into<Cell>>(&mut self, loc: impl Into<Vec2>, cell: C)
Sets a cell at the given location to the given cell
sourcepub fn get(&self, loc: impl Into<Vec2>) -> &Cell
pub fn get(&self, loc: impl Into<Vec2>) -> &Cell
Returns a reverence to the cell at the given location.
sourcepub fn get_mut(&mut self, loc: impl Into<Vec2>) -> &mut Cell
pub fn get_mut(&mut self, loc: impl Into<Vec2>) -> &mut Cell
Returns a mutable reference to the cell at the given location.
sourcepub fn diff<'a>(&self, other: &'a Buffer) -> Vec<(Vec2, &'a Cell)>
pub fn diff<'a>(&self, other: &'a Buffer) -> Vec<(Vec2, &'a Cell)>
Returns the cells and locations that are different between the two buffers
sourcepub fn shrink(&mut self)
pub fn shrink(&mut self)
Shrinks the buffer to the given size by dropping any cells that are only whitespace
sourcepub fn resize(&mut self, new_size: impl Into<Vec2>)
pub fn resize(&mut self, new_size: impl Into<Vec2>)
Resizes the buffer while retaining elements that have already been rendered
sourcepub fn sized_element<R: Render>(item: R) -> Self
pub fn sized_element<R: Render>(item: R) -> Self
Creates a Buffer from the given element with the minimum size it could have for that element. Useful for if you want to store any set of render elements in a custom element.
Trait Implementations§
Auto Trait Implementations§
impl RefUnwindSafe for Buffer
impl Send for Buffer
impl Sync for Buffer
impl Unpin for Buffer
impl UnwindSafe for Buffer
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