(data: ArrayData)
| 964 | |
| 965 | impl<T: ByteViewType + ?Sized> From<ArrayData> for GenericByteViewArray<T> { |
| 966 | fn from(data: ArrayData) -> Self { |
| 967 | let (data_type, len, nulls, offset, buffers, _child_data) = data.into_parts(); |
| 968 | assert_eq!( |
| 969 | data_type, |
| 970 | T::DATA_TYPE, |
| 971 | "Mismatched data type, expected {}, got {data_type}", |
| 972 | T::DATA_TYPE |
| 973 | ); |
| 974 | let mut buffers = buffers.into_iter(); |
| 975 | // first buffer is views, remaining are data buffers |
| 976 | let views = ScalarBuffer::new(buffers.next().unwrap(), offset, len); |
| 977 | Self { |
| 978 | data_type, |
| 979 | views, |
| 980 | buffers: Arc::from_iter(buffers), |
| 981 | nulls, |
| 982 | phantom: Default::default(), |
| 983 | } |
| 984 | } |
| 985 | } |
| 986 | |
| 987 | /// Efficiently convert a [`GenericByteArray`] to a [`GenericByteViewArray`] |
nothing calls this directly
no test coverage detected