saddle-service 0.2.0

Saddle Service contracts, registration and invocation
Documentation
//! Saddle Service contracts, registration, exposure and in-process invocation.
//!
//! A V1 [`Service`] is one strongly typed asynchronous operation. Implementations
//! are registered once, resolved through [`ServiceClient`], and can optionally be
//! exposed through the transport-neutral JSON [`ExternalDispatcher`]. Network
//! listening and protocol framing belong to the application assembler.

mod c4_entry;
mod c5_compiled;
mod contract;
mod external;
mod production_fact;
mod registry;

#[doc(hidden)]
pub mod internal {
    pub use crate::c4_entry::{
        ContractIdentity, EntryCapabilityLimits, EntryFraming, EntryPlanSpec, FactoryIdentity,
        PlanIdentity, RegisteredDbDemand, RegisteredEntry, RegisteredEntryIdentity,
        RegisteredPlanProof, RegisteredRouteExecutionProof, RegistryError, RegistryResource,
        ServiceEntryCapability, ServiceEntryCapabilityBuilder,
    };
    pub use crate::c5_compiled::{
        CompiledDbPermit, CompiledExecutionBuilder, CompiledExecutionCapability,
        CompiledExecutionWithCapacityLeaf, CompiledRegistryError, CompiledRouteExecutionProof,
        CompiledServiceRegistry, CompiledServiceRegistryBuilder, ExecutionError,
        ExecutionLayoutProof, FixedBytes, FixedManagedCodec, FrozenServiceCapacitySourceView,
        GeneratedServiceCapacityArtifactOwner, InternalCallCapability, ManagedBool, ManagedCodec,
        ManagedPair, ManagedU64, ManagedValue,
    };
    pub use crate::production_fact::{
        ServiceProductionFactError, ServiceProductionFactInput, ServiceSourceCandidateInput,
        ServiceSourceCandidateRejection, VerifiedServiceSourceCandidateOwner,
        bind_service_source_candidate, service_source_candidate_input,
    };
}

pub use contract::{Service, ServiceFuture, ServiceHandler};
pub use external::{
    ExternalDispatcher, ExternalDispatcherBuilder, ExternalRequest, ExternalResponse,
    ExternalStatus, MAX_EXTERNAL_REQUEST_BYTES, MAX_EXTERNAL_RESPONSE_BYTES,
    MAX_EXTERNAL_ROUTE_BYTES,
};
pub use registry::{
    ServiceClient, ServiceDescriptor, ServiceRegistry, ServiceRegistryBuilder, ServiceResolver,
};
pub use saddle_core::{CallContext, Result, SaddleError};