Closed vmx closed 3 years ago
Volker, I consider this to be different to issues #21 and #23.
They were about converting a C
integer type representing a boolean to a rust bool
, which is a logical change and may make the API more reliable, as demonstrated by PR #22.
The cl_*
type aliases match the OpenCL
API and make it easier for someone to understand from an OpenCL perspective. I can't see that it matters from a Rust perspective. As you point out, users can find out the underlying type in a modern IDE: in vscode
I only have to hover over a type, not even click it!
Can you give an example where this change would make things easier for users of opencl3
?
As you point out, users can find out the underlying type in a modern IDE: in
vscode
I only have to hover over a type, not even click it!Can you give an example where this change would make things easier for users of
opencl3
?
Good points. I saw it from the Rust (not the OpenCL perspective) by someone reading the API docs. Given the cl_bool
-> Rust bool
change I thought it might be more consistent to have Rust types everywhere. Though practically it doesn't really make a difference. So your perspective makes sense to me, hence I'm closing this issue.
As #22 is a breaking change I'd like to bring up that I think
opencl3
should always return Rust types where possible. For example instead of returning acl_uint
, returning au32
. Currently it's implicitly already the case that acl_uint
is au32
, and you can use it like that, but it is not clear from looking at the API documentation (only if you click on the actual type).Many
cl_*
types are just just such type aliases in cl-sys. I propose change to those Rust types explicitly for the publicopencl3
API.