Reserver does not need to be generic
Maintainer antworten meist innerhalb von 2 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 72/100
Rechercherichtung
Beginne mit der Struct Reserver und ihren Debug- und inherenten impl-Blöcken, die das Issue zitiert, und finde dann die Stelle, an der Reserver<ChunkId, ChunkId> erzeugt und verwendet wird. Entferne die Typparameter, sodass die Felder reservations und pending_removals direkt ChunkId verwenden, und passe die impl-Blöcke und Aufrufstellen entsprechend an. Fertig ist es, wenn das Crate mit cargo check kompiliert und die bestehenden Tests mit cargo test bestehen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
The Reserver<K,V> currently has two type parameters, but is only ever created as Reserver<ChunkId, ChunkId>. Removing the type parameters and making the Reserver non-generic will make it more simple.
The current generic code:
pub struct Reserver<K, V> {
reservations: Cache<K, (V, UnboundedSender<V>, Instant), FxBuildHasher>,
pending_removals: Arc<Mutex<DelayQueue<K>>>,
}
impl<K, V> core::fmt::Debug for Reserver<K, V>
where
K: Hash + Eq + Send + Sync + Debug + Copy + 'static,
V: Send + Sync + Clone + Debug + 'static,
{
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("Reserver")
.field("reservations", &self.reservations)
.field("&pending_removals", &self.pending_removals)
.finish()
}
}
impl<K, V> Reserver<K, V>
where
K: Hash + Eq + Send + Sync + Debug + Copy + 'static,
V: Send + Sync + Clone + 'static,
- Vorherrschende Sprache
- Rust
- Sterne
- 96
- Forks
- 2
- Ø Merge
- 8 T. 22 Std.
- Gemergte PRs (30 T.)
- 2
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus channable/opsqueue
-
Make `submissions_canceled` and `add_chunks_done_to_submissions_failed` migrations bidirectionalOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
channable/opsqueue#193 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Complexity of async rustOffendiscussion
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 30/100
channable/opsqueue#188 · 1 Reaktion ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 66/100
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
channable/opsqueue#182 · 4 Kommentare ·
Maintainer antworten meist innerhalb von 2 Tagen
Alle Issues in channable/opsqueue
Ähnliche Issues
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
shep-pm/shep-kelpie#980 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug frontend rt sev-3
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
-
C-bug
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
-
[1.x Bug] run-operation --sql reports success but rolls back writes on transaction-capable adaptersOffentriage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 64/100
dbt-labs/dbt#16784 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
area:cli bug good first issue priority:medium
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
rtk-ai/rtk#4615 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag