On Tuesday, 28 March 2023 at 05:05:58 UTC, Alexander Zhirov wrote:
On Tuesday, 28 March 2023 at 00:51:43 UTC, Steven Schveighoffer wrote:
auto uuid = UUID(*cast(ubyte[16]*)youruuiddata.ptr);

```d
ubyte[] arr = cast(ubyte[])value.attributes["objectGUID"][0].dup;
writeln(UUID(cast(ubyte[16])arr.ptr));
```

`Error: cannot cast expression 'cast(ubyte*)arr' of type 'ubyte*' to 'ubyte[16]'`

No, it's not possible to transform. The array is initially `immutable(char[])`.

the formatting messed up here. Try this code:

```d
auto uuid = UUID(
    (cast(const(ubyte)[]) value.attributes["objectGUID"][0])
    [0 .. 16]
);
```

no need to `.dup` the values - UUID can work without manipulating the original data, so we just need to cast the `immutable(char)[]` to `const(ubyte)[]`

The LDAP library should probably really instead expose `ubyte[]` instead of `string`

Reply via email to