lib.rs (6180B)
1 #![forbid(unsafe_code)] 2 #![cfg_attr(coverage_nightly, feature(coverage_attribute))] 3 #![doc = include_str!("../README.md")] 4 5 mod admin; 6 mod build_info; 7 mod config; 8 mod entropy; 9 mod error; 10 mod lifecycle; 11 mod operations; 12 mod status; 13 mod time; 14 15 pub use admin::{ 16 ADMIN_CONTRACT_VERSION, ADMIN_CORRELATION_ID_MAX_UTF8_BYTES, ADMIN_ERROR_CODE_MAX_UTF8_BYTES, 17 ADMIN_ERROR_MESSAGE_MAX_UTF8_BYTES, ADMIN_OPERATION_ID_MAX_UTF8_BYTES, 18 AdminContractVersionError, AdminCorrelationId, AdminError, AdminErrorCode, AdminErrorCodeError, 19 AdminErrorMessage, AdminErrorMessageError, AdminFailureResponse, AdminIdentifierError, 20 AdminIdentifierField, AdminMutationRequest, AdminOperationId, AdminPayloadError, 21 AdminPeerAuthorizationPolicy, AdminPeerAuthorizationPolicyError, AdminPeerAuthorizationSupport, 22 AdminSuccessResponse, AdminTransportLimitField, AdminTransportLimitValues, 23 AdminTransportLimits, AdminTransportLimitsError, 24 }; 25 #[cfg(any(target_os = "linux", target_os = "macos"))] 26 pub use admin::{ 27 ADMIN_MIN_RESPONSE_BODY_UTF8_BYTES, ADMIN_ROUTE_PARAMETER_NAME_MAX_UTF8_BYTES, 28 ADMIN_ROUTE_PARAMETER_VALUE_MAX_UTF8_BYTES, ADMIN_ROUTE_PATH_MAX_UTF8_BYTES, AdminClient, 29 AdminClientError, AdminClientErrorKind, AdminClientTarget, AdminClientTargetError, 30 AdminHttpMethod, AdminRequest, AdminRequestDecodeError, AdminRouteFailure, 31 AdminRouteFailureStatus, AdminRouteOutcome, AdminRouteOutcomeError, AdminRoutePath, 32 AdminRoutePathError, AdminRouteRegistrationError, AdminRouter, AdminServer, 33 AdminServerConfigError, AdminServerError, UNIX_ADMIN_ACTIVE_PROBE_TIMEOUT, 34 UNIX_ADMIN_GROUP_DIRECTORY_MODE, UNIX_ADMIN_GROUP_SOCKET_MODE, UNIX_ADMIN_OWNER_DIRECTORY_MODE, 35 UNIX_ADMIN_OWNER_SOCKET_MODE, UnixAdminSocketBinding, UnixAdminSocketError, 36 UnixAdminSocketWriterAuthority, 37 }; 38 pub use build_info::{ 39 BuildInfo, BuildInfoEnvironment, BuildInfoError, BuildInfoField, BuildMode, ContractVersions, 40 StatusBuildInfo, 41 }; 42 pub use config::{ 43 BoundedCount, BoundedCountError, ByteLimit, ByteLimitError, CONFIG_DOCUMENT_MAX_UTF8_BYTES, 44 CONFIG_SCHEMA_ID_MAX_UTF8_BYTES, ConfigDocumentError, ConfigDocumentErrorKind, 45 ConfigDocumentExpectation, ConfigDocumentExpectationError, ConfigDocumentLocation, 46 LoggingFormat, LoggingFormatError, OptionalOperationsBind, OptionalOperationsBindError, 47 PositiveDuration, PositiveDurationError, load_config_document, 48 }; 49 pub use entropy::{EntropyError, EntropySource, SystemEntropy}; 50 pub use error::{HostError, HostErrorCode, HostErrorKind, SafeHostError}; 51 pub use lifecycle::{ 52 CancellationToken, GracefulShutdown, ProcessSignal, ProcessSignalAction, ProcessSignalAdapter, 53 ProcessSignalFuture, ProcessSignalSource, ProcessSignalSourceClosed, ProcessSignalStage, 54 ShutdownConfigError, ShutdownDisposition, ShutdownPhase, ShutdownPhaseFailure, 55 ShutdownPhaseFuture, ShutdownPhaseHandler, ShutdownStartError, ShutdownSummary, 56 SupervisedTaskExit, SupervisedTaskExitStatus, SupervisionFailure, SupervisionFailureKind, 57 TaskClassification, TaskCompletionExpectation, TaskMetadata, TaskMetadataError, TaskName, 58 TaskRegistrationError, TaskSupervisor, UnfinishedWork, 59 }; 60 pub use operations::{ 61 BoundOperationsServer, BoundedMetricsSnapshot, CommonMetricGroup, LIVEZ_PATH, 62 METRICS_CONTENT_TYPE, METRICS_MAX_DESCRIPTORS, METRICS_MAX_LABELS_PER_SAMPLE, 63 METRICS_MAX_RENDER_UTF8_BYTES, METRICS_MAX_SAMPLES, METRICS_PATH, MetricComponentId, 64 MetricDescriptor, MetricHealthState, MetricKind, MetricLabel, MetricLabelKey, MetricName, 65 MetricSample, MetricTaskOutcome, MetricValue, MetricsContractError, MetricsRenderError, 66 OPERATIONS_HEALTH_CONTENT_TYPE, OPERATIONS_HTTP_MIN_HEADER_BYTES, OperationsBindPolicy, 67 OperationsConfigError, OperationsConfigField, OperationsHealthResponse, 68 OperationsListenAddress, OperationsListenAddressError, OperationsListenerConfig, 69 OperationsServer, OperationsServerError, OperationsTransportLimitField, 70 OperationsTransportLimitValues, OperationsTransportLimits, OperationsTransportLimitsError, 71 READYZ_PATH, StableRelayId, livez, readyz, 72 }; 73 pub use radroots_runtime_paths::{InstanceId, ServiceId}; 74 pub use status::{ 75 CONFIGURATION_SCHEMA_VERSION, CachedServiceState, CachedServiceStatePublisher, 76 CachedServiceStateReader, CommonReasonCode, ConfigurationIdentity, ConfigurationSource, 77 IntegrityState, PersistenceHealth, PersistenceSummary, ProviderHealth, Readiness, ReasonCode, 78 ReasonCodes, SERVICE_STATUS_CONTRACT_VERSION, SERVICE_STATUS_MAX_UTF8_BYTES, 79 ServiceOperationalState, ServicePhase, ServiceStatus, ServiceStatusDetail, Sha256Digest, 80 StatusContractError, StatusEncodingError, StatusId, StatusModelError, StatusPublisherDropped, 81 TransportHealth, UptimeMillis, cached_service_state, 82 }; 83 pub use time::{ 84 MonotonicClock, MonotonicClockError, MonotonicDeadline, MonotonicTime, SystemMonotonicClock, 85 SystemWallClock, UnixTimeSeconds, WallClock, WallClockError, 86 }; 87 88 /// Constructs validated build information from the consuming service's compile-time environment. 89 /// 90 /// Release builds fail closed when any governed build variable is absent. Debug builds use stable 91 /// development placeholders so ordinary local development does not require release orchestration. 92 #[macro_export] 93 macro_rules! compile_time_build_info { 94 (feature_profile: $feature_profile:expr, contract_versions: $contract_versions:expr $(,)?) => {{ 95 let mode = if cfg!(debug_assertions) { 96 $crate::BuildMode::Development 97 } else { 98 $crate::BuildMode::Release 99 }; 100 $crate::BuildInfo::from_compile_time( 101 mode, 102 $crate::BuildInfoEnvironment { 103 service_version: Some(env!("CARGO_PKG_VERSION")), 104 service_commit: option_env!("RADROOTS_SERVICE_REVISION"), 105 lib_revision: option_env!("RADROOTS_LIB_REVISION"), 106 rust_version: option_env!("RADROOTS_RUST_VERSION"), 107 target: option_env!("RADROOTS_BUILD_TARGET"), 108 feature_profile: Some($feature_profile), 109 contract_versions: $contract_versions, 110 }, 111 ) 112 }}; 113 }