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}