From 4997c2a4e4856b49668a3d1257e967597c7dfb92 Mon Sep 17 00:00:00 2001 From: Irene Knapp Date: Fri, 27 Mar 2026 03:04:59 -0700 Subject: implement abstractions Terminal and Buffer Terminal encapsulates most of the already-existing logic for drawing things Buffer corresponds directly to the user-facing concept of a buffer. it has facilities for creating a new empty one; for loading itself from a file; and for scanning its contents to compute the offsets to the start of each line. at the moment, the assumption is that buffers are always entirely in-memory, but this will not always be true, so significant attention has been paid to aysnc behavior. there's locks in a few places which may or may not turn out to be how it ultimately works, but they seem like a credible first attempt. the draw() routine is the heart of what exists so-far, doing all the really interesting stuff. Force-Push: yes Change-Id: Ifddc5debb12628233113c0bd6db3ea8cf10e6a5a --- src/types.rs | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 src/types.rs (limited to 'src/types.rs') diff --git a/src/types.rs b/src/types.rs new file mode 100644 index 0000000..ef45492 --- /dev/null +++ b/src/types.rs @@ -0,0 +1,6 @@ +#![forbid(unsafe_code)] +pub use crate::terminal::Terminal; + +pub type Error = std::io::Error; +pub type Result = std::result::Result; + -- cgit 1.4.1