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::{FlowEdgeId, FlowId, FlowNodeId};
use reifydb_transaction::transaction::admin::AdminTransaction;

use crate::{
	Result,
	store::sequence::{
		generator::u64::GeneratorU64,
		system::{FLOW_EDGE_KEY, FLOW_KEY, FLOW_NODE_KEY},
	},
};

pub(crate) fn next_flow_id(txn: &mut AdminTransaction) -> Result<FlowId> {
	GeneratorU64::next(txn, &FLOW_KEY, None).map(FlowId)
}

pub(crate) fn next_flow_node_id(txn: &mut AdminTransaction) -> Result<FlowNodeId> {
	GeneratorU64::next(txn, &FLOW_NODE_KEY, None).map(FlowNodeId)
}

pub(crate) fn next_flow_edge_id(txn: &mut AdminTransaction) -> Result<FlowEdgeId> {
	GeneratorU64::next(txn, &FLOW_EDGE_KEY, None).map(FlowEdgeId)
}