vantage_aws/vista/spec.rs
1//! YAML-facing types for the AWS Vista driver.
2//!
3//! Placeholders for now — AWS Vista doesn't yet support YAML-driven
4//! construction. AWS table names are wire-protocol identifiers of the
5//! form `{protocol}/{array_key}:{service}/{target}` (see `lib.rs`); a
6//! YAML schema would have to either re-encode that vocabulary or hide
7//! it behind another layer of indirection, and neither lowering is
8//! useful without a concrete consumer to shape it. The typed
9//! constructors under [`crate::models`] are the only sensible source
10//! today.
11//!
12//! The types here are kept to satisfy [`VistaFactory`]'s associated-type
13//! contract; `AwsVistaFactory::build_from_spec` returns an error until
14//! a real consumer needs it. When that day comes, the natural extras
15//! to surface are per-table `region` / `max_pages` overrides and
16//! per-column `original_type` hints — sketch them then, not now.
17//!
18//! [`VistaFactory`]: vantage_vista::VistaFactory
19
20use serde::{Deserialize, Serialize};
21use vantage_vista::{NoExtras, VistaSpec};
22
23#[derive(Debug, Clone, Default, Serialize, Deserialize)]
24#[serde(deny_unknown_fields)]
25pub struct AwsTableExtras {}
26
27#[derive(Debug, Clone, Default, Serialize, Deserialize)]
28#[serde(deny_unknown_fields)]
29pub struct AwsColumnExtras {}
30
31pub type AwsVistaSpec = VistaSpec<AwsTableExtras, AwsColumnExtras, NoExtras>;