1mod application;
20#[cfg(all(target_arch = "x86_64", target_os = "linux"))]
21mod http1;
22mod startup_candidate;
23
24pub use application::ProductionLauncher;
25pub use application::SaddleConfig;
26pub use application::{
27 ApprovedBundleNonceReservation, ApprovedExternalBundle,
28 ApprovedExternalBundleApplicabilityFailure, ApprovedExternalBundleSeal,
29 ApprovedExternalBundleVerification, ListenerAuthorityProvider, ListenerAuthoritySeal,
30 VerifiedListenerAuthority,
31};
32#[doc(hidden)]
33pub use application::{
34 GeneratedApplicationBindingError, GeneratedApplicationConsumer, GeneratedApplicationOwner,
35 GeneratedApplicationParts, GeneratedApplicationSeal, GeneratedBoundApplicationParts,
36 GeneratedProductionBootstrap,
37};
38#[doc(hidden)]
40#[cfg(all(target_arch = "x86_64", target_os = "linux"))]
41pub mod internal {
42 pub use crate::http1::bootstrap::{
43 ApprovedGeneratedHttp1Facts, GeneratedApplicationBootstrap, GeneratedBootstrapError,
44 GeneratedBootstrapToken, GeneratedCompiledAdapter, GeneratedContextFactory,
45 GeneratedHttp1StaticFacts, GeneratedRoute, generated_bootstrap_type_identity,
46 generated_http1_framing_identity,
47 };
48}
49
50pub use saddle_core::{ErrorKind, Result, SaddleError};
51
52pub mod managed {
55 pub use saddle_db::internal::ManagedWriteResult as WriteResult;
56 pub use saddle_service::internal::{
57 ManagedBool as Bool, ManagedPair as Pair, ManagedU64 as U64,
58 };
59
60 #[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
62 pub struct Optional<T>(Option<T>);
63
64 impl<T> Optional<T> {
65 #[doc(hidden)]
66 pub const fn from_generated(value: Option<T>) -> Self {
67 Self(value)
68 }
69
70 pub fn into_option(self) -> Option<T> {
71 self.0
72 }
73
74 pub const fn as_ref(&self) -> Option<&T> {
75 self.0.as_ref()
76 }
77 }
78}
79
80#[macro_export]
86macro_rules! application {
87 (
88 schema "saddle-application/1";
89 application $application:ident;
90 $($declaration:tt)*
91 ) => {
92 pub struct $application;
93 };
94 ($($invalid:tt)*) => {
95 compile_error!("skill.schema.unsupported");
96 };
97}