~hime/protochat

45744c57 — Robert Straw 4 months ago master
Merge branch 'feature/rustfmt-spaces'
9760ede7 — Robert Straw 4 months ago
(rust2018) (style) replace #[macro_use] for log crate
07d9637e — Robert Straw 4 months ago
(style) add editorconfig file
fe4ae340 — Robert Straw 4 months ago
(style) (rustfmt) run rustfmt on crate
7a5732af — Robert Straw 4 months ago
(rust2018) recursion limit no longer needed?
(release) smolboi v0.1.1

* Merge branch 'feature/smol-1.0'
  * Create new single threaded executor
    * Update TCP acceptor task to use that executor
    * Update event broker task to use that executor

 * Use `smol::block_on` in runtime thread
231daa4c — Robert Straw 4 months ago
(deps) update to smol 1.x
(bump version) update smolboi & linetest to rust 2021
b012c7b5 — drbawb 4 months ago
(rustup) unlock dependencies for latest rustc
33869ab3 — drbawb 2 years ago
(repo) update readme to mention linetest crate
db1a9b9e — drbawb 2 years ago
(repo) Release project under BSD license.
18cd9c08 — drbawb 2 years ago
(ui/buffer): fix panic when using home/end keys

Home needs to update the position of `end` to be consistent w/ the
currently rendered span length, otherwise subtractions involving the end
of the span will underflow.

End likewise needs to update not just the cursor position, but also the
start and end of the current span. Otherwise the cursor will be
inserting text into a span that is rendered off-screen.
e1c1d97a — drbawb 2 years ago
(net): add tests for client state machine

- brings in `sluice` crate to create an in-memory bidirectional
  stream which we can use to model a fake TCP connection.

- adds tests surrounding the initial client/server registration
  handshake.
b40cea8b — drbawb 2 years ago
(crate) use `Into` trait where possible

removes `as` for infallible casts. a little gross in a few places
where it requires additional `let` bindings because inference
falls down.

remaining casts are guarded w/ `assert!` as a means to declare
my intent that these *should not* fail in practice, even though they
might in some super future, where you have a 65636p display.

("This software doesn't work on my 65K display! D:" - what a nice problem
that'd be to solve. lol.)
0774316b — drbawb 2 years ago
(ui): implement Home & End keys

- (term) adds event handlers for `KeyCode::Home` and `KeyCode::End`.
- (buffer) adds `goto_head` and `goto_tail` methods for `InputBuffer`.
b576f804 — drbawb 2 years ago
(linetest/ui/buffer): reconcile interaction of resizing w/ pager logic.

This commit implements some changes to the pager which allow it to track
the line index which created the multiline span. We can use this
information to determine which line is currently drawn at the top of
the buffer's viewport.

If the span at the top of the viewport is not the first line in
the buffer then we allow the user to continue scrolling up. Likewise if
the span at the bottom of the viewport is not the last line we allow
them to scroll down.

In the special case where the user resizes their terminal to display
more rows _while at the top of the buffer_ we fill the new rows with
additional lines from the buffer.
779bb8c9 — drbawb 2 years ago
(linetest/net) fix issue w/ malformed packets

- Currently malformed packets will termiante the decoder. The protocol is,
  at present, not robust enough to continue following loss of sync. This decision
  may be revisited later if the protocol ever grows some packet framing.

- Added a `quit` channel to allow packet decoding task failure to cascade into
  the main event loop itself.
401b059b — drbawb 2 years ago
(deps) bump crossterm to 0.17.7

Upstream yanked 17.6; fixes a potential panic in `cursor::position()`
451d118c — drbawb 2 years ago
(linetest/ui/buffer) return more generalized iterator

This returns a double ended iterator, which gives callers
downstream a bit more flexibility in how lines are presented
to the client.

This may be useful if we later add buffers that are painted from
top-down, rather than bottom-up.
f08c7e4a — drbawb 2 years ago
make sure we clear rest of the buffer panel
Next