rig-ecs 0.44.0

rig inside a Bevy World: effects as entities, handlers as entities, the driver as a system.
Documentation
//! Reflection wrappers for shared transport DTOs; typed ECS part fields remain visible.
//!
//! ```
//! let mut registry = bevy_reflect::TypeRegistry::default();
//! registry.register::<rig_ecs::agent::content::reflect::TextPartReflect>();
//! ```

use bevy_reflect::{ReflectDeserialize, ReflectSerialize};
use rig_core::message;

crate::reflect::opaque_reflect! {
    /// Reflected shared transport value `message::Text`.
    struct TextPartReflect(message::Text): PartialEq;
    /// Reflected shared transport value `message::ToolCall`.
    struct ToolCallPartReflect(message::ToolCall): PartialEq;
    /// Reflected shared transport value `message::Reasoning`.
    struct ReasoningPartReflect(message::Reasoning): PartialEq;
    /// Reflected shared transport value `message::Opaque`.
    struct OpaquePartReflect(message::Opaque): PartialEq;
    /// Reflected shared transport value `Option<message::Native>`.
    struct NativeReflect(Option<message::Native>): PartialEq;
    /// Reflected shared transport value `Option<message::Origin>`.
    struct OriginReflect(Option<message::Origin>): PartialEq;
    /// Reflected shared transport value `Option<message::StopReason>`.
    struct StopReflect(Option<message::StopReason>): PartialEq;
    /// Reflected shared transport value `serde_json::Value`.
    struct JsonPartReflect(serde_json::Value): PartialEq;
    /// Reflected shared transport value `Option<message::ImageMediaType>`.
    struct ImageMediaReflect(Option<message::ImageMediaType>): PartialEq;
    /// Reflected shared transport value `Option<message::AudioMediaType>`.
    struct AudioMediaReflect(Option<message::AudioMediaType>): PartialEq;
    /// Reflected shared transport value `Option<message::VideoMediaType>`.
    struct VideoMediaReflect(Option<message::VideoMediaType>): PartialEq;
    /// Reflected shared transport value `Option<message::DocumentMediaType>`.
    struct DocumentMediaReflect(Option<message::DocumentMediaType>): PartialEq;
    /// Reflected shared transport value `Option<serde_json::Value>`.
    struct PartParamsReflect(Option<serde_json::Value>): PartialEq;
    /// Reflected shared transport value `Option<message::ImageDetail>`.
    struct ImageDetailReflect(Option<message::ImageDetail>): PartialEq;
}