Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Idea/proposal: Total_duration enum (unknown/max/guarenteed)

Ouverte
#702 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

  • #863 par @Sim-hu — fermée sans fusion

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
25/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
rust
Domaine
audio-video-rtc

Piste de recherche

Read the linked proposal in issue #626 and compare it with the existing total_duration behavior described here, including TakeDuration and skippable. The issue proposes a SourceDuration enum and helper methods, with returning Duration::MAX for infinite sources as a simpler alternative; first determine whether either approach is still wanted. Done means the project has chosen and implemented a consistent duration representation for these cases.

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

Description

enhancement good first issue

Idea by @The0x539 https://github.com/RustAudio/rodio/issues/626#issuecomment-2661094585. Currently infinite sources will return None for total_duration, when paired with a TakeDuration you still get None. Another place we can do better is skippable. Right now a skippable will pass on the total_duration of what it wraps. Because the source can be skipped at any point there is no guarentee it will actually play for that length.

To address these issues we can put extra information in the total_duration result:

enum SourceDuration {
  Max(Duration),
  Guarenteed(Duration),
  Infinite,
  Unknown,
}

We could provide methods to turn this into an option returning Duration::MAX for Infinite. We could call that method known. We could also provide a map, is_known and maybe an unwrap_or.

A far simpler alternative to this proposal would be making infinite sources return Duration::MAX.

Langage dominant
Rust
Étoiles
2.5k
Forks
338
Merge moyen
1 j 3 h
PR mergées (30 j)
1

Préparer son environnement

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 RustAudio/rodio

Toutes les issues de RustAudio/rodio

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.