waylandpp icon indicating copy to clipboard operation
waylandpp copied to clipboard

Enhancement: short interface declaration in generated `${protocol_name}-procotol.cpp`

Open twaik opened this issue 2 years ago • 0 comments

Hi. Your code is generating sources like this

code
const wl_interface* buffer_interface_destroy_request_server[0] = {
};

const wl_interface* buffer_interface_release_event_server[0] = {
};

const wl_message buffer_interface_requests_server[1] = {
  {
    "destroy",
    "",
    buffer_interface_destroy_request_server,
  },
};

const wl_message buffer_interface_events_server[1] = {
  {
    "release",
    "",
    buffer_interface_release_event_server,
  },
};

const wl_interface wayland::server::detail::buffer_interface =
  {
    "wl_buffer",
    1,
    1,
    buffer_interface_requests_server,
    1,
    buffer_interface_events_server,
  };
But it could be much shorter, like this
code
const wl_interface wayland::server::detail::buffer_interface = {
	"wl_buffer", 1,
	1, new const wl_message[] { 
		{ "destroy", "", new const wl_interface*[] {} }
	},
	1, new const wl_message[] {
		{ "release", "", new const wl_interface*[] {} }
	}
};
Also it can be oneliner because it is machine generated code and nobody reads it carefully.
code
const wl_interface wayland::server::detail::buffer_interface = {"wl_buffer", 1, 1, new const wl_message[] {{ "destroy", "", new const wl_interface*[] {} }}, 1, new const wl_message[] {{ "release", "", new const wl_interface*[] {} }}};

I failed to make it constexpr.

twaik avatar Jan 20 '23 11:01 twaik