xr-ai-accelerator

XrAiResult

The XrAiResult class provides a unified result type for all AI operations in the XR AI Library. It encapsulates both success and error states, following a result pattern for error handling.

Class Declaration

public abstract class XrAiResult

Properties

IsSuccess

Indicates whether the operation completed successfully.

public bool IsSuccess { get; protected set; }

ErrorMessage

Contains the error message if the operation failed.

public string ErrorMessage { get; protected set; }

Constructor

Creates a new instance of XrAiResult.

protected XrAiResult(bool isSuccess, string errorMessage = null)

Parameters:

Static Methods

Success

Creates a successful result with data.

public static XrAiResult<T> Success<T>(T data)

Parameters:

Returns:

Failure

Creates a failed result with an error message.

public static XrAiResult<T> Failure<T>(string errorMessage)

Parameters:

Returns:


XrAiResult

The generic XrAiResult<T> class extends XrAiResult to include typed data for successful operations.

Class Declaration

public class XrAiResult<T> : XrAiResult

Properties

Data

Contains the result data for successful operations.

public T Data { get; private set; }

Constructor

Creates a new instance of XrAiResult<T>.

internal XrAiResult(T data, bool isSuccess, string errorMessage = null)

Parameters:

Usage Examples

Checking Results

XrAiResult<string> result = await imageToText.Execute(imageBytes, "image/jpeg");

if (result.IsSuccess)
{
    Debug.Log($"Generated text: {result.Data}");
}
else
{
    Debug.LogError($"Error: {result.ErrorMessage}");
}

Creating Results

// Creating a successful result
var successResult = XrAiResult.Success("Generated text content");

// Creating a failed result
var failureResult = XrAiResult.Failure<string>("API request failed");

Common Usage Pattern

public async Task ProcessImage(Texture2D image)
{
    var result = await imageToTextModel.Execute(imageBytes, "image/jpeg");
    
    if (!result.IsSuccess)
    {
        HandleError(result.ErrorMessage);
        return;
    }
    
    ProcessTextResult(result.Data);
}

Notes