using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace XP.Hardware.RaySource.Abstractions
{
///
/// 射线源操作结果封装类 | X-Ray Source Operation Result Wrapper
/// 用于统一返回操作状态、错误信息和数据 | Unified return of operation status, error messages, and data
///
public class XRayResult
{
///
/// 操作是否成功 | Operation success status
///
public bool Success { get; set; }
///
/// 错误消息(成功时为null)| Error message (null when successful)
///
public string ErrorMessage { get; set; }
///
/// 操作返回的数据 | Operation return data
///
public object Data { get; set; }
///
/// 创建成功结果 | Create success result
///
/// 返回数据 | Return data
/// 成功结果对象 | Success result object
public static XRayResult Ok(object data = null) =>
new XRayResult { Success = true, Data = data };
///
/// 创建错误结果 | Create error result
///
/// 错误消息 | Error message
/// 错误结果对象 | Error result object
public static XRayResult Error(string message) =>
new XRayResult { Success = false, ErrorMessage = message };
///
/// 获取浮点数据(带类型安全)| Get float data (type-safe)
///
public float GetFloat() => Data != null ? Convert.ToSingle(Data) : 0f;
///
/// 获取整数数据(带类型安全)| Get integer data (type-safe)
///
public int GetInt() => Data != null ? Convert.ToInt32(Data) : 0;
}
}