Skip to content

Commit 62dd327

Browse files
committed
update to the span vertlist system
1 parent a08b928 commit 62dd327

File tree

6 files changed

+41
-37
lines changed

6 files changed

+41
-37
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ include(FetchContent)
99
FetchContent_Declare(
1010
reticula
1111
GIT_REPOSITORY https://github.com/reticula-network/reticula.git
12-
GIT_TAG 7498b6a481b4e09f28bb75c4f3b1c6ea7921cf76)
12+
GIT_TAG 3b55f7780fc8fbe91605a85b7b72dd7055131216)
1313

1414
FetchContent_Declare(
1515
fmt

src/common_edge_properties.hpp

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
#include "nanobind/operators.h"
55
#include "type_str/scalars.hpp"
66
#include "type_str/edges.hpp"
7-
#include "type_utils.hpp"
87
#include "type_handles.hpp"
98

109
namespace nb = nanobind;
@@ -17,15 +16,18 @@ nb::class_<EdgeT> define_basic_edge_concept(nb::module_& m) {
1716
cls.def(nb::init<const EdgeT&>(),
1817
"edge"_a,
1918
nb::call_guard<nb::gil_scoped_release>())
20-
.def("mutated_verts",
21-
&EdgeT::mutated_verts,
22-
nb::call_guard<nb::gil_scoped_release>())
23-
.def("mutator_verts",
24-
&EdgeT::mutator_verts,
25-
nb::call_guard<nb::gil_scoped_release>())
26-
.def("incident_verts",
27-
&EdgeT::incident_verts,
28-
nb::call_guard<nb::gil_scoped_release>())
19+
.def("mutated_verts", [](const EdgeT& self) {
20+
auto mv = self.mutated_verts();
21+
return std::vector<typename EdgeT::VertexType>(mv.begin(), mv.end());
22+
}, nb::call_guard<nb::gil_scoped_release>())
23+
.def("mutator_verts", [](const EdgeT& self) {
24+
auto mv = self.mutator_verts();
25+
return std::vector<typename EdgeT::VertexType>(mv.begin(), mv.end());
26+
}, nb::call_guard<nb::gil_scoped_release>())
27+
.def("incident_verts", [](const EdgeT& self) {
28+
auto iv = self.incident_verts();
29+
return std::vector<typename EdgeT::VertexType>(iv.begin(), iv.end());
30+
}, nb::call_guard<nb::gil_scoped_release>())
2931
.def("is_incident",
3032
&EdgeT::is_incident,
3133
"vert"_a,

src/static_edges.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55

66
#include <reticula/static_edges.hpp>
77

8-
#include "type_str/scalars.hpp"
9-
#include "type_str/edges.hpp"
108
#include "type_utils.hpp"
119
#include "common_edge_properties.hpp"
1210

src/static_hyperedges.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55

66
#include <reticula/static_hyperedges.hpp>
77

8-
#include "type_str/scalars.hpp"
9-
#include "type_str/edges.hpp"
108
#include "type_utils.hpp"
119
#include "common_edge_properties.hpp"
1210

@@ -35,12 +33,14 @@ struct declare_static_hyperedges {
3533
new (edge) reticula::directed_hyperedge<VertT>{
3634
std::get<0>(t), std::get<1>(t)};
3735
}, "tuple"_a, nb::call_guard<nb::gil_scoped_release>())
38-
.def("heads",
39-
&reticula::directed_hyperedge<VertT>::heads,
40-
nb::call_guard<nb::gil_scoped_release>())
41-
.def("tails",
42-
&reticula::directed_hyperedge<VertT>::tails,
43-
nb::call_guard<nb::gil_scoped_release>());
36+
.def("heads", [](const reticula::directed_hyperedge<VertT>& self) {
37+
auto heads = self.heads();
38+
return std::vector<VertT>(heads.begin(), heads.end());
39+
}, nb::call_guard<nb::gil_scoped_release>())
40+
.def("tails", [](const reticula::directed_hyperedge<VertT>& self) {
41+
auto tails = self.tails();
42+
return std::vector<VertT>(tails.begin(), tails.end());
43+
}, nb::call_guard<nb::gil_scoped_release>());
4444

4545
nb::implicitly_convertible<
4646
std::pair<std::vector<VertT>, std::vector<VertT>>,

src/temporal_edges.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44

55
#include <reticula/temporal_edges.hpp>
66

7-
#include "type_str/scalars.hpp"
8-
#include "type_str/edges.hpp"
97
#include "type_utils.hpp"
108
#include "common_edge_properties.hpp"
119

src/temporal_hyperedges.cpp

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44

55
#include <reticula/temporal_hyperedges.hpp>
66

7-
#include "type_str/scalars.hpp"
8-
#include "type_str/edges.hpp"
97
#include "type_utils.hpp"
108
#include "common_edge_properties.hpp"
119

@@ -44,12 +42,16 @@ struct declare_temporal_hyperedges {
4442
new (edge) reticula::directed_temporal_hyperedge<VertT, TimeT>{
4543
std::get<0>(t), std::get<1>(t), std::get<2>(t)};
4644
}, "tuple"_a, nb::call_guard<nb::gil_scoped_release>())
47-
.def("heads",
48-
&reticula::directed_temporal_hyperedge<VertT, TimeT>::heads,
49-
nb::call_guard<nb::gil_scoped_release>())
50-
.def("tails",
51-
&reticula::directed_temporal_hyperedge<VertT, TimeT>::tails,
52-
nb::call_guard<nb::gil_scoped_release>());
45+
.def("heads", [](
46+
const reticula::directed_temporal_hyperedge<VertT, TimeT>& self) {
47+
auto heads = self.heads();
48+
return std::vector<VertT>(heads.begin(), heads.end());
49+
}, nb::call_guard<nb::gil_scoped_release>())
50+
.def("tails", [](
51+
const reticula::directed_temporal_hyperedge<VertT, TimeT>& self) {
52+
auto tails = self.tails();
53+
return std::vector<VertT>(tails.begin(), tails.end());
54+
}, nb::call_guard<nb::gil_scoped_release>());
5355

5456
nb::implicitly_convertible<
5557
std::tuple<std::vector<VertT>, std::vector<VertT>, TimeT>,
@@ -67,12 +69,16 @@ struct declare_temporal_hyperedges {
6769
std::get<0>(t), std::get<1>(t),
6870
std::get<2>(t), std::get<3>(t)};
6971
}, "tuple"_a, nb::call_guard<nb::gil_scoped_release>())
70-
.def("heads",
71-
&reticula::directed_delayed_temporal_hyperedge<VertT, TimeT>::heads,
72-
nb::call_guard<nb::gil_scoped_release>())
73-
.def("tails",
74-
&reticula::directed_delayed_temporal_hyperedge<VertT, TimeT>::tails,
75-
nb::call_guard<nb::gil_scoped_release>());
72+
.def("heads", [](
73+
const reticula::directed_delayed_temporal_hyperedge<VertT, TimeT>& self) {
74+
auto heads = self.heads();
75+
return std::vector<VertT>(heads.begin(), heads.end());
76+
}, nb::call_guard<nb::gil_scoped_release>())
77+
.def("tails", [](
78+
const reticula::directed_delayed_temporal_hyperedge<VertT, TimeT>& self) {
79+
auto tails = self.tails();
80+
return std::vector<VertT>(tails.begin(), tails.end());
81+
}, nb::call_guard<nb::gil_scoped_release>());
7682

7783
nb::implicitly_convertible<
7884
std::tuple<std::vector<VertT>, std::vector<VertT>, TimeT, TimeT>,

0 commit comments

Comments
 (0)