Most methods returning interface/class types could return null, so we need to return Option<ComPtr<T>>. Fixes #20.
Return values from factory methods as well as IAsync... return types are not wrapped in Option, because the former are projected as constructors in C# (which cannot return null), and the latter are meant to be used with await syntax in C#, which can not deal with null (see https://github.com/dotnet/roslyn/issues/7171).
In this PR I also finally removed the unsafe modifier from wrapper methods, because I'm sufficiently sure that these methods should be safe, and if some are not (as currently defined), then that's a bug in winrt-rust.
Most methods returning interface/class types could return
null
, so we need to returnOption<ComPtr<T>>
. Fixes #20.Return values from factory methods as well as
IAsync...
return types are not wrapped inOption
, because the former are projected as constructors in C# (which cannot returnnull
), and the latter are meant to be used withawait
syntax in C#, which can not deal withnull
(see https://github.com/dotnet/roslyn/issues/7171).In this PR I also finally removed the
unsafe
modifier from wrapper methods, because I'm sufficiently sure that these methods should be safe, and if some are not (as currently defined), then that's a bug in winrt-rust.