torch.DeviceCheckedResult
export type DeviceCheckedResult<
RequiredDevice extends DeviceType,
ActualDevice extends DeviceType,
SuccessType,
> = ActualDevice extends RequiredDevice
? SuccessType
: device_error_requires<RequiredDevice, ActualDevice>;RequiredDeviceextends DeviceTypeActualDeviceextends DeviceTypeSuccessTypeResult type that checks device compatibility before returning the result. If the device doesn't match, returns an error message string.
Examples
// CPU-only operation
type CPUOnlyResult<Dev extends DeviceType, T> = DeviceCheckedResult<'cpu', Dev, T>;
// Valid - returns Tensor
type Valid = CPUOnlyResult<'cpu', Tensor<[2,3], 'float32', 'cpu'>>;
// = Tensor<[2,3], 'float32', 'cpu'>
// Invalid - returns error
type Invalid = CPUOnlyResult<'webgpu', Tensor<[2,3], 'float32', 'webgpu'>>;
// = "DEVICE_ERROR: operation requires 'cpu' but tensor is on 'webgpu'"