1
1
use std:: sync:: Arc ;
2
+
2
3
use iceberg:: { Catalog , CatalogBuilder , Error , ErrorKind , Result } ;
3
4
use iceberg_catalog_rest:: RestCatalogBuilder ;
4
5
5
-
6
6
pub enum CatalogBuilderDef {
7
7
Rest ( RestCatalogBuilder ) ,
8
8
}
@@ -23,28 +23,33 @@ impl CatalogBuilderDef {
23
23
CatalogBuilderDef :: Rest ( builder) => CatalogBuilderDef :: Rest ( builder. name ( name) ) ,
24
24
}
25
25
}
26
-
26
+
27
27
pub fn uri ( self , uri : impl Into < String > ) -> Self {
28
28
match self {
29
29
CatalogBuilderDef :: Rest ( builder) => CatalogBuilderDef :: Rest ( builder. uri ( uri) ) ,
30
30
}
31
31
}
32
-
32
+
33
33
pub fn warehouse ( self , warehouse : impl Into < String > ) -> Self {
34
34
match self {
35
- CatalogBuilderDef :: Rest ( builder) => CatalogBuilderDef :: Rest ( builder. warehouse ( warehouse) ) ,
35
+ CatalogBuilderDef :: Rest ( builder) => {
36
+ CatalogBuilderDef :: Rest ( builder. warehouse ( warehouse) )
37
+ }
36
38
}
37
39
}
38
-
40
+
39
41
pub fn with_prop ( self , key : impl Into < String > , value : impl Into < String > ) -> Self {
40
42
match self {
41
- CatalogBuilderDef :: Rest ( builder) => CatalogBuilderDef :: Rest ( builder. with_prop ( key, value) ) ,
43
+ CatalogBuilderDef :: Rest ( builder) => {
44
+ CatalogBuilderDef :: Rest ( builder. with_prop ( key, value) )
45
+ }
42
46
}
43
47
}
44
-
48
+
45
49
pub async fn build ( self ) -> Result < Arc < dyn Catalog > > {
46
50
match self {
47
- CatalogBuilderDef :: Rest ( builder) => builder. build ( )
51
+ CatalogBuilderDef :: Rest ( builder) => builder
52
+ . build ( )
48
53
. await
49
54
. map ( |c| Arc :: new ( c) as Arc < dyn Catalog > ) ,
50
55
}
0 commit comments