Skip to main content

iii_sdk/
lib.rs

1pub mod context;
2pub mod error;
3pub mod iii;
4pub mod logger;
5pub mod protocol;
6pub mod stream;
7#[cfg(feature = "otel")]
8pub mod telemetry;
9pub mod triggers;
10pub mod types;
11
12pub use context::{Context, get_context, with_context};
13pub use error::IIIError;
14pub use iii::{
15    FunctionInfo, FunctionsAvailableGuard, III, TriggerInfo, WorkerInfo, WorkerMetadata,
16};
17pub use logger::{Logger, LoggerInvoker};
18pub use protocol::{
19    ErrorBody, FunctionMessage, Message, RegisterFunctionMessage, RegisterServiceMessage,
20    RegisterTriggerMessage, RegisterTriggerTypeMessage,
21};
22pub use stream::{Streams, UpdateBuilder};
23pub use triggers::{Trigger, TriggerConfig, TriggerHandler};
24pub use types::{ApiRequest, ApiResponse, FieldPath, StreamUpdateInput, UpdateOp, UpdateResult};
25
26pub use serde_json::Value;
27
28// OpenTelemetry re-exports (behind "otel" feature flag)
29#[cfg(feature = "otel")]
30pub use telemetry::{
31    context::{
32        current_span_id, current_trace_id, extract_baggage, extract_context, extract_traceparent,
33        get_all_baggage, get_baggage_entry, inject_baggage, inject_traceparent,
34        remove_baggage_entry, set_baggage_entry,
35    },
36    flush_otel, get_meter, get_tracer, init_otel, is_initialized, shutdown_otel,
37    types::OtelConfig,
38    types::ReconnectionConfig,
39    with_span,
40};
41
42// Re-export commonly used OpenTelemetry types for convenience
43#[cfg(feature = "otel")]
44pub use opentelemetry::trace::SpanKind;
45#[cfg(feature = "otel")]
46pub use opentelemetry::trace::Status as SpanStatus;