liurenjie1024 opened a new issue, #1228: URL: https://github.com/apache/iceberg-rust/issues/1228
When developing `iceberg-playground` and the integration test framework, I realized that it would be convenient to have a catalog loader api. I have following design in mind: ```rust pub trait CatalogBuilder { type C: Catalog; fn with_name(self, name: &str) -> Self; fn with_uri(self, uri: &str) -> Self; fn with_warehouse(self, warehouse: &str) -> Self; fn with_prop(self, key: &str, value: &str) -> Self; fn build(self) -> Result<Self::C>; } ``` And we need to have all catalogs to implement this trait: ```rust pub struct RestCatalogBuilder { ... } impl CatalogBuilder for RestCatalogBuilder { .... } ``` Then we will have a catalog loader api like this: ```rust fn load_catalog(r#type: &str) -> CatalogBuilder { match r#type { "rest" => RestCatalogBuilder::new() "hive" => .... } } ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For additional commands, e-mail: issues-h...@iceberg.apache.org