Taking advantage of New Rust Features

Ouverte
#558 5 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
20/100
Type d'issue
Refactorisation
Clarté
À clarifier
Activité
À l'abandon
Stack technique
rust
Domaine
tooling

Piste de recherche

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.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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.

Langage dominant
Rust
Étoiles
4.3k
Forks
391
Métriques de merge des PR
Aucune PR mergée en 30 j

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de rust-ndarray/ndarray

Toutes les issues de rust-ndarray/ndarray

Issues similaires

Plus d'issues Rust

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.