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}