vortex_layout/
context.rs

1use vortex_array::{VTableContext, VTableRegistry};
2
3use crate::LayoutEncodingRef;
4use crate::layouts::chunked::ChunkedLayoutEncoding;
5use crate::layouts::dict::DictLayoutEncoding;
6use crate::layouts::flat::FlatLayoutEncoding;
7use crate::layouts::struct_::StructLayoutEncoding;
8use crate::layouts::zoned::ZonedLayoutEncoding;
9
10pub type LayoutContext = VTableContext<LayoutEncodingRef>;
11pub type LayoutRegistry = VTableRegistry<LayoutEncodingRef>;
12
13pub trait LayoutRegistryExt {
14    fn default() -> Self;
15}
16
17impl LayoutRegistryExt for LayoutRegistry {
18    fn default() -> Self {
19        let mut this = Self::empty();
20        this.register_many([
21            LayoutEncodingRef::new_ref(ChunkedLayoutEncoding.as_ref()),
22            LayoutEncodingRef::new_ref(FlatLayoutEncoding.as_ref()),
23            LayoutEncodingRef::new_ref(StructLayoutEncoding.as_ref()),
24            LayoutEncodingRef::new_ref(ZonedLayoutEncoding.as_ref()),
25            LayoutEncodingRef::new_ref(DictLayoutEncoding.as_ref()),
26        ]);
27        this
28    }
29}