@@ -27,91 +27,53 @@ namespace sdbus {
2727namespace vtable {
2828constexpr sd_bus_vtable start (uint64_t flags)
2929{
30- sd_bus_vtable v{};
31- v.type = _SD_BUS_VTABLE_START;
32- v.flags = flags;
33- v.x .start = decltype (v.x .start ){sizeof (sd_bus_vtable)};
34-
35- return v;
30+ return SD_BUS_VTABLE_START (flags);
3631}
3732
3833constexpr sd_bus_vtable end () {
39- sd_bus_vtable v{};
40- v.type = _SD_BUS_VTABLE_END;
41-
42- return v;
34+ return SD_BUS_VTABLE_END;
4335}
4436
4537constexpr sd_bus_vtable method_o (const char * member, const char * signature,
4638 const char * result,
4739 sd_bus_message_handler_t handler, size_t offset,
4840 uint64_t flags) {
49- sd_bus_vtable v{};
50- v.type = _SD_BUS_VTABLE_METHOD;
51- v.flags = flags;
52- v.x .method = decltype (v.x .method ){member, signature, result, handler, offset};
53-
54- return v;
41+ return sd_bus_vtable SD_BUS_METHOD_WITH_OFFSET (member, signature, result, handler, offset, flags);
5542}
5643
5744constexpr sd_bus_vtable method (const char * member, const char * signature,
5845 const char * result, sd_bus_message_handler_t handler,
5946 uint64_t flags) {
60- return method_o (member, signature, result, handler, 0 , flags);
47+ return method_o (member, signature, result, handler, 0 , flags);
6148}
6249
6350constexpr sd_bus_vtable signal (const char * member, const char * signature, uint64_t flags) {
64- sd_bus_vtable v{};
65- v.type = _SD_BUS_VTABLE_SIGNAL;
66- v.flags = flags;
67- v.x .signal = decltype (v.x .signal ){member, signature};
68-
69- return v;
51+ return sd_bus_vtable SD_BUS_SIGNAL (member, signature, flags);
7052}
7153
7254constexpr sd_bus_vtable property (const char * member, const char * signature,
7355 sd_bus_property_get_t get,
7456 uint64_t flags) {
75- sd_bus_vtable v{};
76- v.type = _SD_BUS_VTABLE_PROPERTY;
77- v.flags = flags;
78- v.x .property = decltype (v.x .property ){member, signature, get, nullptr , 0 };
79-
80- return v;
57+ return sd_bus_vtable SD_BUS_PROPERTY (member, signature, get, 0 , flags);
8158}
8259
8360constexpr sd_bus_vtable property (const char * member, const char * signature,
8461 sd_bus_property_get_t get,
8562 sd_bus_property_set_t set,
8663 uint64_t flags) {
87- sd_bus_vtable v{};
88- v.type = _SD_BUS_VTABLE_WRITABLE_PROPERTY;
89- v.flags = flags;
90- v.x .property = decltype (v.x .property ){member, signature, get, set, 0 };
91-
92- return v;
64+ return sd_bus_vtable SD_BUS_WRITABLE_PROPERTY (member, signature, get, set, 0 , flags);
9365}
9466
9567constexpr sd_bus_vtable property_o (const char * member, const char * signature,
9668 size_t offset, uint64_t flags) {
97- sd_bus_vtable v{};
98- v.type = _SD_BUS_VTABLE_PROPERTY;
99- v.flags = flags;
100- v.x .property = decltype (v.x .property ){member, signature, nullptr , nullptr , offset};
101-
102- return v;
69+ return sd_bus_vtable SD_BUS_PROPERTY (member, signature, nullptr , offset, flags);
10370}
10471
10572constexpr sd_bus_vtable property_o (const char * member, const char * signature,
10673 sd_bus_property_set_t set, size_t offset,
10774 uint64_t flags)
10875{
109- sd_bus_vtable v{};
110- v.type = _SD_BUS_VTABLE_WRITABLE_PROPERTY;
111- v.flags = flags;
112- v.x .property = decltype (v.x .property ){member, signature, nullptr , set, offset};
113-
114- return v;
76+ return sd_bus_vtable SD_BUS_WRITABLE_PROPERTY (member, signature, nullptr , set, offset, flags);
11577}
11678} // namespace vtable
11779} // namespace sd_bus
0 commit comments