1use crate::Interface;
7#[cfg(feature = "tokio_async")]
8use mssf_com::FabricCommon::{IFabricAsyncOperationCallback, IFabricAsyncOperationContext};
9use mssf_com::FabricRuntime::IFabricRuntime;
10
11#[cfg(feature = "tokio_async")]
12pub use self::runtime_wrapper::Runtime;
13
14pub mod config;
15pub mod error;
16#[cfg(feature = "tokio_async")]
17pub mod executor;
18#[cfg(feature = "tokio_async")]
19pub mod node_context;
20
21pub mod package_change;
22
23#[cfg(feature = "tokio_async")]
24pub mod runtime_wrapper;
25#[cfg(feature = "tokio_async")]
26pub mod stateful;
27#[cfg(feature = "tokio_async")]
28pub mod stateful_bridge;
29#[cfg(feature = "tokio_async")]
30pub mod stateful_proxy;
31#[cfg(feature = "tokio_async")]
32pub mod stateless;
33#[cfg(feature = "tokio_async")]
34pub mod stateless_bridge;
35pub mod store;
36#[cfg(feature = "tokio_async")]
37pub mod store_proxy;
38
39mod activation_context;
40pub use activation_context::{CodePackageActivationContext, CodePackageInfo};
41
42pub fn create_com_runtime() -> crate::Result<IFabricRuntime> {
44 crate::API_TABLE
45 .fabric_create_runtime()
46 .map_err(crate::Error::from)
47}
48
49pub fn get_com_activation_context<T: Interface>() -> crate::Result<T> {
50 crate::API_TABLE
51 .fabric_get_activation_context::<T>()
52 .map_err(crate::Error::from)
53}