Commit Graph

99 Commits

Author SHA1 Message Date
Lukas Wirth
3484b5a116 internal: Do not allocate unnecessarily when importing macros from parent modules 2023-06-16 18:41:06 +02:00
Lukas Wirth
dc7c6d43c7 Slightly shrink DefMap 2023-06-01 14:46:36 +02:00
bors
2df56cadcb Auto merge of #14755 - poliorcetics:clippy-fixes, r=Veykril
Fix: a TODO and some clippy fixes

- fix(todo): implement IntoIterator for ArenaMap<IDX, V>
- chore: remove unused method
- fix: remove useless `return`s
- fix: various clippy lints
- fix: simplify boolean test to a single negation
2023-05-24 11:13:52 +00:00
bors
b7cdd93f3e Auto merge of #14747 - oxalica:feat/arena-idx-range, r=HKalbasi
More APIs for `la_arena::IdxRange`

```rust
impl<T> ExactSizeIterator for IdxRange<T>;

impl<T> Arena<T> {
    pub fn alloc_many<II: IntoIterator<Item = T>>(&mut self, iter: II) -> IdxRange<T>;
}
```

1. There are no currently ways to get `IdxRange` without manually offseting `Idx`. Providing a method for multiple-allocation simplifies this process and makes it less error-prone.
2. `IdxRange: ExactSizeIterator` makes `iter.zip(range).rev()` possible. Since `Zip: DoubleEndedIterator` requires all its arguments to be `ExactSizeIterator`. It also ease the usage for, eg. `len()`.
3. Fixed a typo.

I noticed that `IdxRange::end` may be invalid. Is it good to return `Idx` instead of `RawIdx`?
2023-05-09 17:36:48 +00:00
Ariel Davis
db40fef6b1 Improve lib readme 2023-05-07 02:41:44 -07:00
Ariel Davis
60056b8845 Expose len 2023-05-06 15:44:37 -07:00
Ariel Davis
9d4d45215a Rename 2023-05-06 15:44:09 -07:00
Ariel Davis
369e430b05 Improve doc 2023-05-06 15:42:15 -07:00
Ariel Davis
1cf74802ab Improve docs 2023-05-06 15:14:02 -07:00
Ariel Davis
ed498b6eff Rm out of bounds 2023-05-06 15:11:18 -07:00
Ariel Davis
cc2936b93e Use size field 2023-05-06 15:10:35 -07:00
Ariel Davis
510050ecdc Add more types 2023-05-06 15:09:34 -07:00
Ariel Davis
7a7f90cf28 Use de morgan 2023-05-06 15:06:51 -07:00
Ariel Davis
7cdca727a8 Use all not instead of find is none 2023-05-06 15:06:23 -07:00
Ariel Davis
e4d053e794 Rm into 2023-05-06 15:05:38 -07:00
Ariel Davis
1bc6bca478 Use checked 2023-05-06 15:05:03 -07:00
oxalica
add94d3b9c Impl FusedIterator for IdxRange 2023-05-06 22:02:30 +08:00
oxalica
665c0cb547 Forward Iterator::{count,last,nth} for IdxRange random access 2023-05-06 22:00:04 +08:00
Alexis (Poliorcetics) Bourget
c5e0607915 fix(todo): implement IntoIterator for ArenaMap<IDX, V> 2023-05-06 15:37:38 +02:00
oxalica
86eaf53600 Fix typo in docs 2023-05-06 21:27:35 +08:00
oxalica
4e4940e21e Add Arena::alloc_many to easily get IdxRange
There are no currently ways to get `IdxRange` without manually offseting
`Idx`. Providing a method for multiple-allocation simplifies this
process and makes it less error-prone.
2023-05-06 21:21:00 +08:00
oxalica
300f3a1b43 Impl ExactSizeIterator for IdxRange 2023-05-06 21:15:57 +08:00
Ariel Davis
343976fe56 Return None for too-large offset 2023-05-06 02:08:47 -07:00
Ariel Davis
e8a93306f0 Remove 0 TextSize at front 2023-05-06 01:46:33 -07:00
Ariel Davis
6500487735 Rename 2023-05-06 01:37:25 -07:00
Ariel Davis
0ad2450396 Check for inside multibyte 2023-05-06 01:05:28 -07:00
Ariel Davis
902b3438c9 Use try_line_col 2023-05-06 01:04:41 -07:00
Ariel Davis
d683e22021 Use u32 more 2023-05-06 01:03:18 -07:00
Ariel Davis
8012acc90e Use a from 2023-05-06 01:02:37 -07:00
Ariel Davis
84a6cb3bfc Inline 2023-05-06 00:59:56 -07:00
Ariel Davis
02e8bb0c6e Return Option 2023-05-06 00:57:57 -07:00
Ariel Davis
9de213c4fe Swap, tweak comments 2023-05-06 00:56:30 -07:00
Ariel Davis
0bb21533c6 Tweak comments, swap 2023-05-06 00:52:11 -07:00
Ariel Davis
594a41e7bf Use pre.1, tweak comment 2023-05-06 00:51:25 -07:00
Ariel Davis
1ad0779a00 Make WideEncoding non-exhaustive 2023-05-06 00:49:23 -07:00
Ariel Davis
59b4916294 Swap 2023-05-06 00:49:23 -07:00
Ariel Davis
663e11c4b0 Move some tests 2023-05-06 00:49:23 -07:00
Ariel Davis
da5c63c8f9 Use boxed slice
As well as doing the shrink_to_fit, we also don't have to keep track of
the capacity anymore.
2023-05-06 00:49:23 -07:00
Ariel Davis
d9c88460e4 Use cur 2023-05-06 00:49:23 -07:00
Ariel Davis
4b7c759f2f Un-doc a comment 2023-05-06 00:49:23 -07:00
Ariel Davis
4a1922fd1a Depend on nohash-hasher individually 2023-05-06 00:49:23 -07:00
Ariel Davis
1d678cf6a0 Allow clippy 2023-05-06 00:49:23 -07:00
Ariel Davis
71c4a8968d Pub use TextRange, TextSize 2023-05-06 00:49:23 -07:00
Ariel Davis
5e2c68f4d4 Use less 2023-05-06 00:49:23 -07:00
Ariel Davis
39ef368e75 Remove pub(crate) 2023-05-06 00:49:23 -07:00
Ariel Davis
4b28ad92e9 Make text-size a workspace dep 2023-05-06 00:49:23 -07:00
Ariel Davis
85dd7b22b4 Use nohash_hasher, rm comment 2023-05-06 00:49:23 -07:00
Ariel Davis
7e1992a0d9 Make line-index an external lib 2023-05-06 00:49:23 -07:00
Ariel Davis
29256f22e4 Make non-hash an external lib 2023-05-06 00:49:23 -07:00
KatKlo
1db2a2536c Fix bug with notifications during initialization 2023-04-15 19:31:02 +02:00