reifydb-catalog 0.4.13

Database catalog and metadata management for ReifyDB
Documentation
// SPDX-License-Identifier: Apache-2.0
// Copyright (c) 2025 ReifyDB

use reifydb_core::interface::catalog::flow::{FlowId, FlowNode, FlowNodeId};
use reifydb_transaction::transaction::{Transaction, admin::AdminTransaction};
use tracing::instrument;

use crate::{CatalogStore, Result, catalog::Catalog};

impl Catalog {
	#[instrument(name = "catalog::flow_node::create", level = "debug", skip(self, txn, node_def))]
	pub fn create_flow_node(&self, txn: &mut AdminTransaction, node_def: &FlowNode) -> Result<()> {
		CatalogStore::create_flow_node(txn, node_def)
	}

	#[instrument(name = "catalog::flow_node::drop", level = "debug", skip(self, txn))]
	pub fn drop_flow_node(&self, txn: &mut AdminTransaction, node_id: FlowNodeId) -> Result<()> {
		CatalogStore::drop_flow_node(txn, node_id)
	}

	#[instrument(name = "catalog::flow_node::find", level = "trace", skip(self, txn))]
	pub fn find_flow_node(&self, txn: &mut Transaction<'_>, node_id: FlowNodeId) -> Result<Option<FlowNode>> {
		CatalogStore::find_flow_node(txn, node_id)
	}

	#[instrument(name = "catalog::flow_node::get", level = "trace", skip(self, txn))]
	pub fn get_flow_node(&self, txn: &mut Transaction<'_>, node_id: FlowNodeId) -> Result<FlowNode> {
		CatalogStore::get_flow_node(txn, node_id)
	}

	#[instrument(name = "catalog::flow_node::list_by_flow", level = "debug", skip(self, txn))]
	pub fn list_flow_nodes_by_flow(&self, txn: &mut Transaction<'_>, flow_id: FlowId) -> Result<Vec<FlowNode>> {
		CatalogStore::list_flow_nodes_by_flow(txn, flow_id)
	}

	#[instrument(name = "catalog::flow_node::list_all", level = "debug", skip(self, txn))]
	pub fn list_flow_nodes_all(&self, txn: &mut Transaction<'_>) -> Result<Vec<FlowNode>> {
		CatalogStore::list_flow_nodes_all(txn)
	}
}