#[repr(transparent)]pub struct HandleOrInvalid(_);
FFI type for handles in return values or out parameters, where
INVALID_HANDLE_VALUE is used
as a sentry value to indicate errors, such as in the return value of
CreateFileW. This uses
repr(transparent) and has the representation of a host handle, so that it can be used in such
The only thing you can usefully do with a
HandleOrInvalid is to convert it into an
OwnedHandle using its
TryFrom implementation; this conversion takes care of the check for
INVALID_HANDLE_VALUE. This ensures that such FFI calls cannot start using the handle without
This type may hold any handle value that
OwnedHandle may hold, except that when it holds
-1, that value is interpreted to mean
If holds a handle other than
INVALID_HANDLE_VALUE, it will close the handle on drop.
Constructs a new instance of
Self from the given
from a Windows API that uses
INVALID_HANDLE_VALUE to indicate
failure, such as
HandleOrNull instead of
HandleOrInvalid for APIs that
use null to indicate failure.
handle value must either satisfy the safety requirements
FromRawHandle::from_raw_handle, or be
INVALID_HANDLE_VALUE (-1). Note that not all Windows APIs use
INVALID_HANDLE_VALUE for errors; see here for the full story.
Returns the argument unchanged.