Commit Graph

47 Commits

Author SHA1 Message Date
7d7ab1acf1 Significant speed up to the hash.
It can now hash data at 9-10 GiB/s.
2022-08-25 16:27:43 -07:00
a41e1dd7de Add benchmarks for LedHash256, and tweak for performance.
Also benchmark against Blake3.
2022-08-24 18:45:36 -07:00
3f3cf5dd3a Switch other backend code over to use transactions. 2022-08-23 12:30:14 -07:00
696ecb732d Implemented Transaction composition. 2022-08-22 21:10:28 -07:00
19fa7b6abe Start implementing transaction composition. 2022-03-26 06:04:17 -07:00
f3c12d6cee More work on Transaction. 2021-11-14 14:33:52 -08:00
f9415d915f Merge branch 'master' of github.com:cessen/led 2021-11-14 11:36:16 -08:00
51a86dcfdc Beginnings of a Transaction type. 2021-11-14 11:35:25 -08:00
88c7ded976 Update dependencies to latest versions. 2021-06-16 11:27:47 -07:00
27572c8838 More code cleanup of the hash. 2020-02-24 13:31:17 +09:00
4e435732d7 Cleaned up the hash implementation a bit. 2020-02-24 13:09:49 +09:00
dc9b3dd5c3 Removed all but one unsafe call from the hasher. 2020-02-24 12:50:18 +09:00
c38c83a8b5 Reduced the set of tests for the hash function.
Also added a couple new ones to test possible edge cases.
2020-02-24 12:33:36 +09:00
e810503e56 Slight tweak to the hash function.
The last swap isn't actually needed, and this makes the implementation
cleaner for different numbers of rounds if we want to tweak that
later.
2020-02-24 10:18:58 +09:00
905ff2c301 Cleaned up the hash implementation and made it endian-clean. 2020-02-24 10:09:13 +09:00
e1d91ff43d Move filepath into the Buffer struct. 2020-02-24 07:35:04 +09:00
4544efb299 Undo/redo wasn't marking the buffer as dirty. Fixed. 2020-02-23 20:14:13 +09:00
4a33750a6b Fix minor bug from the move to the new buffer. 2020-02-23 20:10:30 +09:00
c4fa72405f Switch to new backend buffer for text, cursor, and undo management. 2020-02-23 19:56:08 +09:00
6077be2dfd Add convenience fn's and impls for iterating and indexing MarkSets. 2020-02-23 16:24:41 +09:00
4267334303 Finish the bare-bones undo/redo system. 2020-02-23 15:37:16 +09:00
0c887d1eb9 Beginnings of an undo system for the new backend.
Just going to keep it stupid and simple for now.  More
sophisticated undo functionality can be added in the future.
2020-02-22 18:00:28 +09:00
c3bfdf7a7f Add Mark and MarkSet types for managing cursors etc.
Originally I was using just `(usize, usize)` for marks, and `Vec`s
of those for sets.  But that was already becoming unwieldy even for
really basic code.  This abstracts just a handful of common
operations away to make this easier to reason about.  However,
the internals are (intentionally) left exposed to allow other fiddly
things to be done.
2020-02-11 11:35:31 +09:00
fb1996c21a Have buffers store marks ranges.
This is very WIP.  The intent is for these to be used for e.g.
cursors, screen positions, etc.  The intent is for the buffer
itself to keep them synced properly with the actual text on edits,
although this is not yet implemented.
2020-02-01 11:17:08 +09:00
f94fc0408f Updated most dependencies to latest version.
Holding off on smallvec since there's an API break.
2020-01-23 18:57:34 +09:00
dab1c9ed1b Updated to Rust 2018.
No functional changes.
2020-01-23 18:47:27 +09:00
f0a44ab300 More work on the backend, including adding data hashing code. 2020-01-22 10:17:56 +09:00
540803e0ee Update dependencies. 2019-09-01 11:40:02 +09:00
6f4e619263 Update dependencies, including Ropey -> 1.0. 2019-01-06 17:38:44 -08:00
a843aee904 Split text_encoding off into its own repo.
It's more generally useful, and I was working with it as its own
crate anyway.
2018-08-23 13:33:14 -07:00
30a1440399 Tests for single-byte encodings, and related bug fixes. 2018-08-23 13:21:16 -07:00
3d8eaefa6b Added a lot of single-byte text encodings to text_encoding sub-crate.
They are largely auto-generated from text-based tables from the
WHATWG encoding standard.  Most of them are still not available
in the code itself, but they are generating correctly, and exposing
them is just a matter of boiler plate.
2018-08-23 02:29:58 -07:00
3203da38bd Added unit tests for windows1252 encoding/decoding. 2018-08-22 19:00:47 -07:00
fb95ff36c1 Added unit tests for latin1 encoding/decoding. 2018-08-22 18:17:05 -07:00
9409bfe7fb Tests for utf8 encoding/decoding, and improved utf8 errors. 2018-08-22 17:53:07 -07:00
006b578318 Change encoding/decoding function naming.
I think this makes it more obvious at-a-glance what they do.
2018-08-22 15:05:38 -07:00
37acbba36a Added unit tests for utf32 encoding/decoding. 2018-08-22 12:55:52 -07:00
2cc4bc64ba More utf16 encode/decode tests, and accompanying fixes. 2018-08-21 22:32:19 -07:00
60cbb193b2 Added unit tests for utf16 encoding/decoding. 2018-08-21 22:18:22 -07:00
fc07ee3444 Reorg text_encoding sub-crate a bit and make it no_std. 2018-08-21 21:13:00 -07:00
3a17ca9e8c Added utf32 encoders/decoders to the text_encoding sub-crate. 2018-08-21 05:25:53 -07:00
173837b827 Added property testing for encoding round-tripping.
Also fixed a bug in the utf16 encoders/decoders.
2018-08-20 22:30:39 -07:00
a82b06794e Added Windows-1252 support to text_encoding sub-crate. 2018-08-20 21:09:01 -07:00
3ea4e25fbe Adjusting APIs for text encoding/decoding. 2018-08-19 19:14:13 -07:00
0ee183aa72 WIP creating a clean frontend/backend separation.
- Started work on writing a new backend.
- Started work on writing text encoding handling.
2018-08-17 20:34:43 -07:00
9c302620e9 Updating to use the new Ropey.
This is mainly just for kicks and giggles, since it really won't
work quite properly anyway, due to the lack of grapheme indexing.
The next real thing is to... well, start from scratch.
2017-12-30 23:10:56 -08:00
8d146a595e Moved Ropey dependency in-tree. 2017-11-25 23:12:37 -08:00