reifydb_core/value/column/data/
from.rs1use reifydb_type::Value;
5
6use crate::value::column::ColumnData;
7
8impl ColumnData {
9 pub fn from_many(value: Value, row_count: usize) -> Self {
10 match value {
11 Value::Boolean(v) => ColumnData::bool(vec![v; row_count]),
12 Value::Float4(v) => ColumnData::float4([v.value()]),
13 Value::Float8(v) => ColumnData::float8([v.value()]),
14 Value::Int1(v) => ColumnData::int1(vec![v; row_count]),
15 Value::Int2(v) => ColumnData::int2(vec![v; row_count]),
16 Value::Int4(v) => ColumnData::int4(vec![v; row_count]),
17 Value::Int8(v) => ColumnData::int8(vec![v; row_count]),
18 Value::Int16(v) => ColumnData::int16(vec![v; row_count]),
19 Value::Utf8(v) => ColumnData::utf8(vec![v; row_count]),
20 Value::Uint1(v) => ColumnData::uint1(vec![v; row_count]),
21 Value::Uint2(v) => ColumnData::uint2(vec![v; row_count]),
22 Value::Uint4(v) => ColumnData::uint4(vec![v; row_count]),
23 Value::Uint8(v) => ColumnData::uint8(vec![v; row_count]),
24 Value::Uint16(v) => ColumnData::uint16(vec![v; row_count]),
25 Value::Date(v) => ColumnData::date(vec![v; row_count]),
26 Value::DateTime(v) => ColumnData::datetime(vec![v; row_count]),
27 Value::Time(v) => ColumnData::time(vec![v; row_count]),
28 Value::Duration(v) => ColumnData::duration(vec![v; row_count]),
29 Value::IdentityId(v) => ColumnData::identity_id(vec![v; row_count]),
30 Value::Uuid4(v) => ColumnData::uuid4(vec![v; row_count]),
31 Value::Uuid7(v) => ColumnData::uuid7(vec![v; row_count]),
32 Value::Blob(v) => ColumnData::blob(vec![v; row_count]),
33 Value::Int(v) => ColumnData::int(vec![v; row_count]),
34 Value::Uint(v) => ColumnData::uint(vec![v; row_count]),
35 Value::Decimal(v) => ColumnData::decimal(vec![v; row_count]),
36 Value::Undefined => ColumnData::undefined(row_count),
37 Value::Any(v) => ColumnData::any(vec![v.clone(); row_count]),
38 }
39 }
40}
41
42impl From<Value> for ColumnData {
43 fn from(value: Value) -> Self {
44 Self::from_many(value, 1)
45 }
46}