1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
//! Interop with [`arrow-rs`] buffer builder.
use crate::;
/// A [`BufferType`] implementation for [`BufferBuilder`].
;
// impl<T: FixedSize, Buffer: BufferType> From<FixedSizePrimitiveArray<T, false, Buffer>>
// for arrow_buffer::BufferBuilder<T>
// {
// fn from(value: FixedSizePrimitiveArray<T, false, Buffer>) -> Self {
// // Note: this makes a copy
// let buffer = arrow_buffer::MutableBuffer::from(value.0.as_slice().to_vec());
// arrow_buffer::BufferBuilder::new_from_buffer(buffer)
// }
// }
// impl<T: FixedSize, Buffer: BufferType> From<BufferBuilder<T>>
// for FixedSizePrimitiveArray<T, false, Buffer>
// where
// <Buffer as BufferType>::Buffer<T>: From<arrow_buffer::Buffer>,
// {
// fn from(mut value: arrow_buffer::BufferBuilder<T>) -> Self {
// FixedSizePrimitiveArray(value.finish().into())
// }
// }
// #[cfg(test)]
// mod tests {
// use super::*;
// const INPUT: [u32; 4] = [1, 2, 3, 4];
// #[test]
// fn length() {
// let buffer_builder = INPUT.into_iter().collect::<BufferBuilder<_>>();
// assert_eq!(Length::len(&buffer_builder), INPUT.len());
// }
// #[test]
// fn from() {
// let fixed_size_primitive_array = INPUT.into_iter().collect::<FixedSizePrimitiveArray<_>>();
// assert_eq!(
// arrow_buffer::BufferBuilder::from(fixed_size_primitive_array).as_slice(),
// INPUT
// );
// let fixed_size_primitive_array_arc =
// INPUT
// .into_iter()
// .collect::<FixedSizePrimitiveArray<_, false, ArcBuffer>>();
// assert_eq!(
// arrow_buffer::BufferBuilder::from(fixed_size_primitive_array_arc).as_slice(),
// INPUT
// );
// }
// #[test]
// fn into() {
// let buffer_builder = INPUT.into_iter().collect::<BufferBuilder<_>>();
// assert_eq!(
// FixedSizePrimitiveArray::<_, false, ArrowScalarBuffer>::from(buffer_builder)
// .into_iter()
// .copied()
// .collect::<Vec<_>>(),
// INPUT
// );
// }
// }