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