# XrResultExtensions

Extension class for XrResult, including helpers of OpenXRResultStatus and XRResultStatus.

## Summary

| ### Public static functions ||
|---|---|
| `https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XrResultExtensions#getdisplayname(this XrResult result)` | `string` Gets display name of a given result. |
| `https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XrResultExtensions#iscloudautherror(this OpenXRResultStatus status)` | `bool` Determines if the OpenXRResultStatus represents an [XrResultAndroid.GeospatialCloudAuthFailed](https://developer.android.com/develop/xr/unity/reference/namespace/Google/XR/Extensions#xrresultandroid_geospatialcloudauthfailed) error. |
| `https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XrResultExtensions#iskeylesserror(this OpenXRResultStatus status)` | `bool` Determines if setting authentication failed with keyless errors. |
| `https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XrResultExtensions#ispersistenceresult(this XRResultStatus xrStatus, out https://developer.android.com/develop/xr/unity/reference/namespace/Google/XR/Extensions#persistencestatuscode persistenceResult)` | `bool` Determines if the XRResultStatus represents a [PersistenceStatusCode](https://developer.android.com/develop/xr/unity/reference/namespace/Google/XR/Extensions#persistencestatuscode) failure and outputs the error code. |
| `https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XrResultExtensions#isunsupported(this OpenXRResultStatus status)` | `bool` Determines if the OpenXRResultStatus represents unsupported cases. |
| `https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XrResultExtensions#toext(this https://developer.android.com/develop/xr/unity/reference/namespace/Google/XR/Extensions#xrresultandroid android)` | `XrResult` Converts vendor error codes to `XrResult` type. |
| `https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XrResultExtensions#toopenxrstatus(this XRResultStatus xrStatus)` | `OpenXRResultStatus` Converts AR Foundation status type to OpenXR status to better analyze native error code XrResult. |
| `https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XrResultExtensions#tostatus(this XrResult result)` | `OpenXRResultStatus` Converts XrResult to OpenXRResultStatus. |
| `https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XrResultExtensions#toxrcode(this https://developer.android.com/develop/xr/unity/reference/namespace/Google/XR/Extensions#persistencestatuscode persistenceCode)` | `XRResultStatus.StatusCode` Converts [PersistenceStatusCode](https://developer.android.com/develop/xr/unity/reference/namespace/Google/XR/Extensions#persistencestatuscode) to XRResultStatus.StatusCode. |
| `https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XrResultExtensions#toxrresultstatus(this OpenXRResultStatus openXRResult)` | `XRResultStatus` Converts OpenXR status type into AR Foundation status type, for the compatibility with `Result`. |

## Public static functions

### GetDisplayName

```c#
string GetDisplayName(
  this XrResult result
)
```
Gets display name of a given result.

It converts to [XrResultAndroid](https://developer.android.com/develop/xr/unity/reference/namespace/Google/XR/Extensions#xrresultandroid) when possible.


Details Parameters `result` A XrResult returned by OpenXR APIs. **Returns** The display name of the given result.

### IsCloudAuthError

```c#
bool IsCloudAuthError(
  this OpenXRResultStatus status
)
```
Determines if the OpenXRResultStatus represents an [XrResultAndroid.GeospatialCloudAuthFailed](https://developer.android.com/develop/xr/unity/reference/namespace/Google/XR/Extensions#xrresultandroid_geospatialcloudauthfailed) error.


Details Parameters `status` The OpenXRResultStatus returned from OpenXR APIs. **Returns** True if it's caused by [XrResultAndroid.GeospatialCloudAuthFailed](https://developer.android.com/develop/xr/unity/reference/namespace/Google/XR/Extensions#xrresultandroid_geospatialcloudauthfailed).

### IsKeylessError

```c#
bool IsKeylessError(
  this OpenXRResultStatus status
)
```
Determines if setting authentication failed with keyless errors.


Details Parameters `status` The status returned from [XRGoogleCloudFeature.TrySetAuthenticationAsync(
XRAuthenticationStrategy, string)](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRGoogleCloudFeature#trysetauthenticationasync). **Returns** True if it's failed with keyless authentication.

### IsPersistenceResult

```c#
bool IsPersistenceResult(
  this XRResultStatus xrStatus,
  out PersistenceStatusCode persistenceResult
)
```
Determines if the XRResultStatus represents a [PersistenceStatusCode](https://developer.android.com/develop/xr/unity/reference/namespace/Google/XR/Extensions#persistencestatuscode) failure and outputs the error code.


Details Parameters `xrStatus` The target XRResultStatus. `persistenceResult` The output [PersistenceStatusCode](https://developer.android.com/develop/xr/unity/reference/namespace/Google/XR/Extensions#persistencestatuscode). **Returns** Returns true if it's an extended persistence code.

### IsUnsupported

```c#
bool IsUnsupported(
  this OpenXRResultStatus status
)
```
Determines if the OpenXRResultStatus represents unsupported cases.


Details Parameters `status` The OpenXRResultStatus returned from OpenXR APIs. **Returns** True if it's an unsupported status.

### ToExt

```c#
XrResult ToExt(
  this XrResultAndroid android
)
```
Converts vendor error codes to `XrResult` type.


Details Parameters `android` The vendor error code. **Returns** The XrResult error.

### ToOpenXRStatus

```c#
OpenXRResultStatus ToOpenXRStatus(
  this XRResultStatus xrStatus
)
```
Converts AR Foundation status type to OpenXR status to better analyze native error code XrResult.


Details Parameters `xrStatus` The XRResultStatus returned from OpenXR wrappers. **Returns** The OpenXRResultStatus equivalence.

### ToStatus

```c#
OpenXRResultStatus ToStatus(
  this XrResult result
)
```
Converts XrResult to OpenXRResultStatus.


Details Parameters `result` The XrResult returned from OpenXR APIs. **Returns** The OpenXRResultStatus equivalence.

### ToXRCode

```c#
XRResultStatus.StatusCode ToXRCode(
  this PersistenceStatusCode persistenceCode
)
```
Converts [PersistenceStatusCode](https://developer.android.com/develop/xr/unity/reference/namespace/Google/XR/Extensions#persistencestatuscode) to XRResultStatus.StatusCode.


Details Parameters `persistenceCode` The persistence result returned from OpenXR APIs. **Returns** The XRResultStatus.StatusCode equivalence.

### ToXRResultStatus

```c#
XRResultStatus ToXRResultStatus(
  this OpenXRResultStatus openXRResult
)
```
Converts OpenXR status type into AR Foundation status type, for the compatibility with `Result`.


Details Parameters `openXRResult` The OpenXRResultStatus returned from OpenXR APIs. **Returns** The XRResultStatus equivalence.