Carry the source transcript into forks and cross-link fork points

This commit is contained in:
Ian Gulliver
2026-10-20 09:14:44 -07:00
parent 29c993cde0
commit 09d6c6e023
10 changed files with 208 additions and 123 deletions
+7 -1
View File
@@ -25,6 +25,7 @@ final class Listeners<T> {
final class Feed {
private(set) var events: [ByreEvent] = []
private(set) var ready = false
private(set) var inherited = 0
let appended = Listeners<[ByreEvent]>()
let streamed = Listeners<ByreEvent>()
@ObservationIgnored private var last: Int64 = 0
@@ -49,15 +50,20 @@ final class Feed {
}
}
func load(_ history: [ByreEvent]) {
func load(_ history: [ByreEvent], inherited: Int = 0) {
if ready {
return
}
ready = true
self.inherited = inherited
buffer = history + buffer
flush()
}
var own: ArraySlice<ByreEvent> {
events.dropFirst(inherited)
}
func prepend(_ older: [ByreEvent]) {
events.insert(contentsOf: older, at: 0)
}