Documentation
¶
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FromSeq ¶
func FromSeq[T any](iterator iter.Seq[T]) ro.Observable[T]
FromSeq creates an observable from a Go sequence iterator. Play: https://go.dev/play/p/Cq-cq_AR4Z6
Example ¶
// Create a sequence of integers
seq := func(yield func(int) bool) {
for i := 1; i <= 5; i++ {
if !yield(i) {
return
}
}
}
observable := FromSeq[int](seq)
subscription := observable.Subscribe(ro.PrintObserver[int]())
defer subscription.Unsubscribe()
Output: Next: 1 Next: 2 Next: 3 Next: 4 Next: 5 Completed
Example (WithEarlyTermination) ¶
// Create a sequence that can be terminated early
seq := func(yield func(int) bool) {
for i := 1; i <= 10; i++ {
if !yield(i) {
// Early termination requested
return
}
}
}
observable := FromSeq[int](seq)
subscription := observable.Subscribe(
ro.NewObserver(
func(value int) {
// Process value
},
func(err error) {
// Handle error
},
func() {
// Handle completion
},
),
)
defer subscription.Unsubscribe()
Output: Will emit 1, 2, 3, 4, 5 then complete
Example (WithStrings) ¶
// Create a sequence of strings
seq := func(yield func(string) bool) {
words := []string{"Hello", "World", "Golang", "Reactive"}
for _, word := range words {
if !yield(word) {
return
}
}
}
observable := FromSeq[string](seq)
subscription := observable.Subscribe(ro.PrintObserver[string]())
defer subscription.Unsubscribe()
Output: Next: Hello Next: World Next: Golang Next: Reactive Completed
func FromSeq2 ¶
FromSeq2 creates an observable from a Go sequence iterator with key-value pairs. Play: https://go.dev/play/p/d-SZxjCKm9N
Example ¶
// Create a sequence of key-value pairs
seq := func(yield func(string, int) bool) {
pairs := []struct {
key string
value int
}{
{"Alice", 30},
{"Bob", 25},
{"Charlie", 35},
}
for _, pair := range pairs {
if !yield(pair.key, pair.value) {
return
}
}
}
observable := FromSeq2[string, int](seq)
subscription := observable.Subscribe(ro.PrintObserver[lo.Tuple2[string, int]]())
defer subscription.Unsubscribe()
Output: Next: {A:Alice B:30} Next: {A:Bob B:25} Next: {A:Charlie B:35} Completed
func ToSeq ¶
func ToSeq[T any](source ro.Observable[T]) iter.Seq[T]
ToSeq converts an observable to a Go sequence iterator.
Example ¶
// Convert observable to sequence
observable := ro.Just(1, 2, 3, 4, 5)
seq := ToSeq[int](observable)
// Iterate over the sequence
for value := range seq {
// Process each value
_ = value
}
Output: Will iterate over 1, 2, 3, 4, 5
Example (WithEarlyTermination) ¶
// Convert observable to sequence with early termination
observable := ro.Just(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
seq := ToSeq[int](observable)
// Iterate over the sequence with early termination
for value := range seq {
// Process each value
if value > 5 {
// Terminate early
break
}
}
Output: Will iterate over 1, 2, 3, 4, 5 then terminate
Example (WithFiltering) ¶
// Convert filtered observable to sequence
observable := ro.Pipe1(
ro.Just(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
ro.Filter(func(n int) bool {
return n%2 == 0 // Only even numbers
}),
)
seq := ToSeq[int](observable)
// Iterate over the filtered sequence
for value := range seq {
// Process each even value
_ = value
}
Output: Will iterate over 2, 4, 6, 8, 10
Example (WithTransformation) ¶
// Convert transformed observable to sequence
observable := ro.Pipe1(
ro.Just(1, 2, 3, 4, 5),
ro.Map(func(n int) string {
return fmt.Sprintf("Number: %d", n)
}),
)
seq := ToSeq[string](observable)
// Iterate over the transformed sequence
for value := range seq {
// Process each transformed value
_ = value
}
Output: Will iterate over "Number: 1", "Number: 2", "Number: 3", "Number: 4", "Number: 5"
func ToSeq2 ¶
ToSeq2 converts an observable to a Go sequence iterator with index-value pairs.
Example ¶
// Convert observable to key-value sequence
observable := ro.Just("Alice", "Bob", "Charlie")
seq := ToSeq2[string](observable)
// Iterate over the key-value sequence
for index, value := range seq {
// Process each key-value pair
_ = index
_ = value
}
Output: Will iterate over (0, "Alice"), (1, "Bob"), (2, "Charlie")
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.