gsm_core/
lib.rs

1//! Greentic Messaging core contracts and value types.
2//!
3//! This crate exposes the shared data structures exchanged between ingress, runner, and egress
4//! components. It also provides validation helpers and small utilities for subject naming and
5//! idempotency tracking.
6pub mod cards;
7pub mod context;
8pub mod egress;
9pub mod http;
10pub mod idempotency;
11pub mod ingress;
12#[cfg(feature = "adaptive-cards")]
13pub mod messaging_card;
14pub mod oauth;
15pub mod platforms;
16pub mod prelude;
17pub mod provider;
18pub mod registry;
19pub mod secrets_paths;
20pub mod subjects;
21pub mod telemetry;
22pub mod types;
23pub mod validate;
24
25pub use cards::*;
26pub use context::*;
27pub use http::*;
28pub use idempotency::*;
29pub use ingress::*;
30#[cfg(feature = "adaptive-cards")]
31pub use messaging_card::types::{
32    Action as AdaptiveAction, ImageRef as AdaptiveImageRef, MessageCard as AdaptiveMessageCard,
33    MessageCardKind as AdaptiveMessageCardKind, OauthCard as AdaptiveOauthCard,
34    OauthPrompt as AdaptiveOauthPrompt, OauthProvider as AdaptiveOauthProvider,
35};
36#[cfg(feature = "adaptive-cards")]
37pub use messaging_card::{
38    MessageCardEngine,
39    adaptive::{AdaptiveCardPayload, AdaptiveCardVersion, ValidateError, normalizer},
40    downgrade::{CapabilityProfile, DowngradeContext, DowngradeEngine, PolicyDowngradeEngine},
41    ir::{AppLink, Element, InputChoice, MessageCardIr, MessageCardIrBuilder},
42    renderers::{
43        NullRenderer, PlatformRenderer, RendererRegistry, SlackRenderer, TeamsRenderer,
44        TelegramRenderer, WebChatRenderer, WebexRenderer,
45    },
46    spec::{AuthRenderSpec, FallbackButton, RenderIntent, RenderSpec},
47    telemetry::{CardTelemetry, NullTelemetry, TelemetryEvent, TelemetryHook},
48    tier::{Tier, TierPolicy},
49};
50pub use platforms::*;
51pub use prelude::*;
52pub use provider::*;
53pub use registry::*;
54pub use secrets_paths::*;
55pub use subjects::*;
56pub use telemetry::*;
57pub use types::*;
58pub use validate::*;
59
60/// Returns the semantic version advertised by this crate.
61///
62/// ```
63/// assert_eq!(gsm_core::version(), "0.1.0");
64/// ```
65pub fn version() -> &'static str {
66    "0.1.0"
67}