use futures::Stream;
use stageleft::{QuotedWithContext, RuntimeData, q};
use crate::location::MembershipEvent;
use crate::location::member_id::TaglessMemberId;
pub fn embedded_cluster_self_id<'a>() -> impl QuotedWithContext<'a, TaglessMemberId, ()> + Clone + 'a
{
let self_id: RuntimeData<&TaglessMemberId> = RuntimeData::new("__cluster_self_id");
q!(self_id.clone())
}
pub fn embedded_cluster_membership_stream<'a>(
idx: usize,
) -> impl QuotedWithContext<'a, Box<dyn Stream<Item = (TaglessMemberId, MembershipEvent)> + Unpin>, ()>
{
let var_name: &'static str = Box::leak(format!("__membership_{}", idx).into_boxed_str());
let membership: RuntimeData<
Box<dyn Stream<Item = (TaglessMemberId, MembershipEvent)> + Unpin>,
> = RuntimeData::new(var_name);
q!(membership)
}