diff --git a/hydroflow/tests/snapshots/surface_lattice_bimorphism__join@graphvis_dot.snap b/hydroflow/tests/snapshots/surface_lattice_bimorphism__join@graphvis_dot.snap index 112f7fc57da8..e085e15cb944 100644 --- a/hydroflow/tests/snapshots/surface_lattice_bimorphism__join@graphvis_dot.snap +++ b/hydroflow/tests/snapshots/surface_lattice_bimorphism__join@graphvis_dot.snap @@ -11,7 +11,7 @@ digraph { n4v1 [label="(n4v1) source_iter_delta([(7, 0), (7, 1), (7, 2)])", shape=invhouse, fillcolor="#88aaff"] n5v1 [label="(n5v1) map(|(k, v)| MapUnionSingletonMap::new_from((k, SetUnionSingletonSet::new_from(v))))", shape=invhouse, fillcolor="#88aaff"] n6v1 [label="(n6v1) state::<'static, MapUnionHashMap>>()", shape=invhouse, fillcolor="#88aaff"] - n7v1 [label="(n7v1) lattice_bimorphism(\l KeyedBimorphism::<\l HashMap<_, _>,\l _,\l >::from(CartesianProductBimorphism::>::default()),\l lhs,\l rhs,\l)\l", shape=invhouse, fillcolor="#88aaff"] + n7v1 [label="(n7v1) lattice_bimorphism(\l KeyedBimorphism::<\l HashMap<_, _>,\l _,\l >::new(CartesianProductBimorphism::>::default()),\l lhs,\l rhs,\l)\l", shape=invhouse, fillcolor="#88aaff"] n8v1 [label="(n8v1) lattice_reduce()", shape=invhouse, fillcolor="#88aaff"] n9v1 [label="(n9v1) for_each(|x| out_send.send(x).unwrap())", shape=house, fillcolor="#ffff88"] n10v1 [label="(n10v1) handoff", shape=parallelogram, fillcolor="#ddddff"] diff --git a/hydroflow/tests/snapshots/surface_lattice_bimorphism__join@graphvis_mermaid.snap b/hydroflow/tests/snapshots/surface_lattice_bimorphism__join@graphvis_mermaid.snap index 91608b95450c..9db266c98507 100644 --- a/hydroflow/tests/snapshots/surface_lattice_bimorphism__join@graphvis_mermaid.snap +++ b/hydroflow/tests/snapshots/surface_lattice_bimorphism__join@graphvis_mermaid.snap @@ -14,7 +14,7 @@ linkStyle default stroke:#aaa 4v1[\"(4v1) source_iter_delta([(7, 0), (7, 1), (7, 2)])"/]:::pullClass 5v1[\"(5v1) map(|(k, v)| MapUnionSingletonMap::new_from((k, SetUnionSingletonSet::new_from(v))))"/]:::pullClass 6v1[\"(6v1) state::<'static, MapUnionHashMap<usize, SetUnionHashSet<usize>>>()"/]:::pullClass -7v1[\"
(7v1)
lattice_bimorphism(
KeyedBimorphism::<
HashMap<_, _>,
_,
>::from(CartesianProductBimorphism::<HashSet<_>>::default()),
lhs,
rhs,
)
"/]:::pullClass +7v1[\"
(7v1)
lattice_bimorphism(
KeyedBimorphism::<
HashMap<_, _>,
_,
>::new(CartesianProductBimorphism::<HashSet<_>>::default()),
lhs,
rhs,
)
"/]:::pullClass 8v1[\"(8v1) lattice_reduce()"/]:::pullClass 9v1[/"(9v1) for_each(|x| out_send.send(x).unwrap())"\]:::pushClass 10v1["(10v1) handoff"]:::otherClass diff --git a/hydroflow/tests/surface_lattice_bimorphism.rs b/hydroflow/tests/surface_lattice_bimorphism.rs index b7064426e29e..164dbab98197 100644 --- a/hydroflow/tests/surface_lattice_bimorphism.rs +++ b/hydroflow/tests/surface_lattice_bimorphism.rs @@ -57,7 +57,7 @@ pub fn test_join() { lhs[items] -> [0]my_join; rhs[items] -> [1]my_join; - my_join = lattice_bimorphism(KeyedBimorphism::, _>::from(CartesianProductBimorphism::>::default()), #lhs, #rhs) + my_join = lattice_bimorphism(KeyedBimorphism::, _>::new(CartesianProductBimorphism::>::default()), #lhs, #rhs) -> lattice_reduce() -> for_each(|x| out_send.send(x).unwrap()); }; diff --git a/lattices/src/map_union.rs b/lattices/src/map_union.rs index fade888c1c0c..e2cfa516fe23 100644 --- a/lattices/src/map_union.rs +++ b/lattices/src/map_union.rs @@ -277,8 +277,9 @@ pub struct KeyedBimorphism { bimorphism: Bimorphism, _phantom: PhantomData MapOut>, } -impl From for KeyedBimorphism { - fn from(bimorphism: Bimorphism) -> Self { +impl KeyedBimorphism { + /// Create a `KeyedBimorphism` using `bimorphism` for handling values. + pub fn new(bimorphism: Bimorphism) -> Self { Self { bimorphism, _phantom: PhantomData, @@ -398,28 +399,28 @@ mod test { ]; check_lattice_bimorphism( - KeyedBimorphism::, _>::from( + KeyedBimorphism::, _>::new( CartesianProductBimorphism::>::default(), ), items_a, items_a, ); check_lattice_bimorphism( - KeyedBimorphism::, _>::from( + KeyedBimorphism::, _>::new( CartesianProductBimorphism::>::default(), ), items_a, items_b, ); check_lattice_bimorphism( - KeyedBimorphism::, _>::from( + KeyedBimorphism::, _>::new( CartesianProductBimorphism::>::default(), ), items_b, items_a, ); check_lattice_bimorphism( - KeyedBimorphism::, _>::from( + KeyedBimorphism::, _>::new( CartesianProductBimorphism::>::default(), ), items_b, @@ -427,28 +428,28 @@ mod test { ); check_lattice_bimorphism( - KeyedBimorphism::, _>::from( + KeyedBimorphism::, _>::new( CartesianProductBimorphism::>::default(), ), items_a, items_a, ); check_lattice_bimorphism( - KeyedBimorphism::, _>::from( + KeyedBimorphism::, _>::new( CartesianProductBimorphism::>::default(), ), items_a, items_b, ); check_lattice_bimorphism( - KeyedBimorphism::, _>::from( + KeyedBimorphism::, _>::new( CartesianProductBimorphism::>::default(), ), items_b, items_a, ); check_lattice_bimorphism( - KeyedBimorphism::, _>::from( + KeyedBimorphism::, _>::new( CartesianProductBimorphism::>::default(), ), items_b,