Skip to content

Commit c927e97

Browse files
committed
generic c++ get linktype method
1 parent 62dfc68 commit c927e97

File tree

3 files changed

+17
-9
lines changed

3 files changed

+17
-9
lines changed

src/nixgen.cc

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,18 @@ mxArray *dataset_read_all(const nix::DataSet &da) {
3939
return data;
4040
}
4141

42+
nix::LinkType get_link_type(uint8_t ltype)
43+
{
44+
nix::LinkType link_type;
45+
46+
switch (ltype) {
47+
case 0: link_type = nix::LinkType::Tagged; break;
48+
case 1: link_type = nix::LinkType::Untagged; break;
49+
case 2: link_type = nix::LinkType::Indexed; break;
50+
default: throw std::invalid_argument("unkown link type");
51+
}
52+
53+
return link_type;
54+
}
55+
4256
} // namespace nixgen

src/nixgen.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ namespace nixgen {
88

99
mxArray *dataset_read_all(const nix::DataSet &da);
1010

11+
nix::LinkType get_link_type(uint8_t ltype);
12+
1113
} // namespace nixgen
1214

1315
#endif

src/nixtag.cc

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,7 @@ namespace nixtag {
4242
{
4343
nix::Tag currObj = input.entity<nix::Tag>(1);
4444

45-
uint8_t ltype = input.num<uint8_t>(3);
46-
nix::LinkType link_type;
47-
48-
switch (ltype) {
49-
case 0: link_type = nix::LinkType::Tagged; break;
50-
case 1: link_type = nix::LinkType::Untagged; break;
51-
case 2: link_type = nix::LinkType::Indexed; break;
52-
default: throw std::invalid_argument("unkown link type");
53-
}
45+
nix::LinkType link_type = nixgen::get_link_type(input.num<uint8_t>(3));
5446

5547
nix::Feature newFeat = currObj.createFeature(input.str(2), link_type);
5648
output.set(0, handle(newFeat));

0 commit comments

Comments
 (0)