use crate::observable::connectable_observable::LocalConnectableObservable;
pub use crate::prelude::*;
pub trait Publish<'a, Item, Err>
where
Self: Sized,
{
#[inline(always)]
fn publish(self) -> LocalConnectableObservable<'a, Self, Item, Err> {
LocalConnectableObservable::local(self)
}
}
impl<'a, Item, Err, T> Publish<'a, Item, Err> for T {}
#[test]
fn smoke() {
use crate::observable::Connect;
let p = observable::of!(100).publish();
let mut first = 0;
let mut second = 0;
p.fork().subscribe(|v| first = *v);
p.fork().subscribe(|v| second = *v);
p.connect();
assert_eq!(first, 100);
assert_eq!(second, 100);
}