Skip to main content

unitycatalog_client/codegen/tables/
resource.rs

1// @generated — do not edit by hand.
2#![allow(unused_imports)]
3use super::builders::*;
4use super::client::TableServiceClient;
5use unitycatalog_common::models::tables::v1::*;
6/// A client scoped to a single `table`.
7#[derive(Clone)]
8pub struct TableClient {
9    pub(crate) catalog_name: String,
10    pub(crate) schema_name: String,
11    pub(crate) table_name: String,
12    pub(crate) client: TableServiceClient,
13}
14impl TableClient {
15    /// Create a client bound to the resource's name components.
16    pub fn new(
17        catalog_name: impl Into<String>,
18        schema_name: impl Into<String>,
19        table_name: impl Into<String>,
20        client: TableServiceClient,
21    ) -> Self {
22        Self {
23            catalog_name: catalog_name.into(),
24            schema_name: schema_name.into(),
25            table_name: table_name.into(),
26            client,
27        }
28    }
29    /// Create a `table` client from its dot-joined full name (e.g. `"catalog_name.schema_name.table_name"`).
30    pub fn from_full_name(full_name: impl Into<String>, client: TableServiceClient) -> Self {
31        let full_name = full_name.into();
32        let mut parts = full_name.splitn(3usize, '.');
33        let catalog_name = parts.next().unwrap_or_default();
34        let schema_name = parts.next().unwrap_or_default();
35        let table_name = parts.next().unwrap_or_default();
36        Self::new(catalog_name, schema_name, table_name, client)
37    }
38    /// The `catalog_name` component of this resource's name.
39    pub fn catalog_name(&self) -> &str {
40        &self.catalog_name
41    }
42    /// The `schema_name` component of this resource's name.
43    pub fn schema_name(&self) -> &str {
44        &self.schema_name
45    }
46    /// This resource's own name (the leaf component).
47    pub fn name(&self) -> &str {
48        &self.table_name
49    }
50    /// The fully-qualified name of this resource (its dot-joined name components).
51    pub fn full_name(&self) -> String {
52        format!(
53            "{}.{}.{}",
54            self.catalog_name, self.schema_name, self.table_name
55        )
56    }
57    /// Get a table
58    pub fn get(&self) -> GetTableBuilder {
59        GetTableBuilder::new(
60            self.client.clone(),
61            format!(
62                "{}.{}.{}",
63                self.catalog_name, self.schema_name, self.table_name
64            ),
65        )
66    }
67    /// Get boolean reflecting if table exists
68    pub fn get_table_exists(&self) -> GetTableExistsBuilder {
69        GetTableExistsBuilder::new(
70            self.client.clone(),
71            format!(
72                "{}.{}.{}",
73                self.catalog_name, self.schema_name, self.table_name
74            ),
75        )
76    }
77    /// Delete a table
78    pub fn delete(&self) -> DeleteTableBuilder {
79        DeleteTableBuilder::new(
80            self.client.clone(),
81            format!(
82                "{}.{}.{}",
83                self.catalog_name, self.schema_name, self.table_name
84            ),
85        )
86    }
87}