Carry the source transcript into forks and cross-link fork points
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user