rx_core_subject_publish

Crates.iorx_core_subject_publish
lib.rsrx_core_subject_publish
version0.2.0
created_at2026-01-19 20:44:24.44355+00
updated_at2026-01-24 15:02:05.16285+00
descriptionpublish subject for rx_core
homepagehttps://github.com/AlexAegis/rx_bevy
repositoryhttps://github.com/AlexAegis/rx_bevy
max_upload_size
id2055285
size41,295
Sandor (AlexAegis)

documentation

https://github.com/AlexAegis/rx_bevy

README

subject_publish

crates.io ci codecov license

Forwards observed signals to all active subscribers. Does not replay values to late subscribers, but always replays terminal state.

See Also

  • AsyncSubject - Reduces observed values into one and emits it on completion, replaying the result to late subscribers.
  • BehaviorSubject - Always holds a value that is replayed to late subscribers.
  • ReplaySubject - Buffers the last N values and replays them to late subscribers.
  • ProvenanceSubject - BehaviorSubject that also stores an additional filtering value to track provenance.

Example

cargo run -p rx_core --example subject_publish_example
use rx_core::prelude::*;

fn main() {
    let mut subject = PublishSubject::<i32>::default();
    subject.next(1);

    let mut subscription = subject
        .clone()
        .subscribe(PrintObserver::<i32>::new("subject_example"));
    subject.next(2);
    subject.next(3);
    subscription.unsubscribe();
    subject.next(4);
    subject.complete();

    let _subscription_2 = subject
        .clone()
        .subscribe(PrintObserver::<i32>::new("subject_example_2"));
}

Output:

subject_example - next: 2
subject_example - next: 3
subject_example - unsubscribed
subject_example_2 - completed
subject_example_2 - unsubscribed
Commit count: 652

cargo fmt