use faucet_core::{Capabilities, ConnectorDescriptor};
use serde_json::Value;
pub const DESCRIPTOR: ConnectorDescriptor = ConnectorDescriptor::new("iceberg", capabilities)
.with_host_identity(faucet_common_iceberg::config::host_identity)
.with_runtime_host_identity();
fn capabilities(_config: &Value) -> Capabilities {
Capabilities::builder()
.discover(true)
.shardable(true)
.columnar(cfg!(feature = "arrow"))
.build()
}
#[cfg(test)]
mod tests {
use super::*;
use serde_json::json;
#[test]
fn discovers_shards_and_follows_arrow() {
assert_eq!(DESCRIPTOR.kind(), "iceberg");
for cfg in [Value::Null, json!({"table": "ns.t"})] {
let c = DESCRIPTOR.capabilities(&cfg);
assert!(c.discover() && c.shardable());
assert_eq!(c.columnar(), cfg!(feature = "arrow"));
assert!(!c.exactly_once() && !c.native());
}
}
}