Skip to main content

sim_lib_server/
realize.rs

1use sim_kernel::{Cx, Result};
2use sim_lib_stream_core::{PlacedFragment, StreamEnvelope};
3
4use crate::Site;
5
6/// Realizes a placed fragment on `site`, returning the resulting stream
7/// envelopes for its output edges.
8pub fn realize(
9    cx: &mut Cx,
10    fragment: PlacedFragment,
11    site: &dyn Site,
12) -> Result<Vec<StreamEnvelope>> {
13    site.run_fragment(cx, &fragment)
14}
15
16/// Realizes `fragment` on `site` and returns its stream events; an alias for
17/// [`realize`] named for the streaming call site.
18pub fn realize_stream_events(
19    cx: &mut Cx,
20    fragment: PlacedFragment,
21    site: &dyn Site,
22) -> Result<Vec<StreamEnvelope>> {
23    realize(cx, fragment, site)
24}