Taking advantage of New Rust Features
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 20/100
Research direction
Start by choosing one unchecked Rust feature or modernization item in the checklist, such as cargo fmt and CI checks, docs.rs annotations, or const generics. Formulate the goal and expected gain before implementation, then document the result in the pull request; completion means the selected item is justified and addressed or split into a focused issue.
Written by the indexing model from the issue text.
Description
Ideas and tracking to take advantage of “new” features in Rust
All features to be used because of what gain they give us, not to score points. Formulate goal & gain before implementing - and write it up the pull request 🙂.
- std::alloc
- use/namespaced macros - #517
- std::arch and
target_feature
I'd prefer significant work in this area to take place in a separate crate, that we depend on. Something that gathers low level "loops" in one place. Like this, but revived and remade - NonZero for nonzero integers
- NonNull for pointers #434
- repr(transparent)
- needs_drop
- pub(crate) - This can be used for reorganization of a quite old crate structure
-
const fn(1.31) - Inclusive ranges
- Rustdoc item links
- 2018 edition path rules #567
- Run
cargo fmton repository and add format checking to CI (now thatrustfmtis stable). - Possible use of
no_std+alloc. (1.36) #708 -
MaybeUninit(1.36) #685 - Annotations in docs to indicate when items are enabled by features. This requires the unstable doc_cfg feature, so we should probably enable this only on docs.rs. To do so, we can add this to the crate:
#![cfg_attr(docsrs, feature(doc_cfg))]
and then on each item enabled by a specific feature, we add this:
#[cfg_attr(docsrs, doc(cfg(feature = "thefeature")))]
(For an example, see async_compression.)
- Const generics #961
Future features (not relevant yet, because they don't exist in stable Rust)
- Variadic generics
- Generic associated types
- Custom DST
- Specialization
- Allocator trait
Iterator::try_fold(Try is unstable) #706- trait aliases
This is a tracking issue, please edit it.
- Dominant language
- Rust
- Stars
- 4.3k
- Forks
- 391
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from rust-ndarray/ndarray
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
rust-ndarray/ndarray#1612 · 1 comment ·
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
rust-ndarray/ndarray#1617 · 1 comment ·
-
bug good first issue
Difficulty 3/5 1-2 days Newbie friendliness 68/100
rust-ndarray/ndarray#1615 · 1 comment ·
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
rust-ndarray/ndarray#1610 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 72/100
rust-ndarray/ndarray#1609 ·
All issues in rust-ndarray/ndarray
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
kwakseongjae/auto-hwp#319 ·
-
area:cli bug filter-quality good first issue priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100