#[derive(Debug, Clone, PartialEq, Eq)]
pub struct GraphVertexPairInput {
pub input: usize,
pub first_column: String,
pub second_column: String,
}
impl GraphVertexPairInput {
pub fn new(input: usize, first_column: impl Into<String>, second_column: impl Into<String>) -> Self {
Self { input, first_column: first_column.into(), second_column: second_column.into() }
}
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct GraphSimilarityParams {
pub vertex_pairs: GraphVertexPairInput,
}
impl GraphSimilarityParams {
pub fn new(vertex_pairs: GraphVertexPairInput) -> Self {
Self { vertex_pairs }
}
pub(crate) fn side_input_ordinals(&self) -> impl Iterator<Item = usize> + '_ {
std::iter::once(self.vertex_pairs.input)
}
}
impl Default for GraphSimilarityParams {
fn default() -> Self {
Self::new(GraphVertexPairInput::new(1, "first", "second"))
}
}