reifydb-sub-flow 0.4.9

Flow subsystem for stream processing and data flows
Documentation
// SPDX-License-Identifier: Apache-2.0
// Copyright (c) 2025 ReifyDB

use reifydb_core::interface::catalog::flow::FlowNodeId;
use reifydb_type::value::row_number::RowNumber;
use serde::{Deserialize, Serialize};

use crate::operator::join::store::Store;

pub(crate) struct JoinState {
	pub(crate) left: Store,
	pub(crate) right: Store,
}

impl JoinState {
	pub(crate) fn new(node_id: FlowNodeId) -> Self {
		Self {
			left: Store::new(node_id, JoinSide::Left),
			right: Store::new(node_id, JoinSide::Right),
		}
	}
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub(crate) struct JoinSideEntry {
	pub(crate) rows: Vec<RowNumber>,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub(crate) enum JoinSide {
	Left,
	Right,
}