Taking advantage of New Rust Features

オープン
#558 コメント 5 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
20/100
issue の種類
リファクタリング
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
rust
領域
tooling

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

enhancement help wanted

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 fmt on repository and add format checking to CI (now that rustfmt is 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.

主要言語
Rust
スター
4.3k
フォーク
391
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

rust-ndarray/ndarray のほかの issue

rust-ndarray/ndarray の issue をすべて見る

似ている issue

Rust の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。