use bevy::prelude::*;
use serde::{Deserialize, Serialize};
use super::ids::ActorId;
#[derive(Debug, Clone, PartialEq, Reflect, Serialize, Deserialize)]
pub struct Field {
pub title: String,
pub value: FieldValue,
}
#[derive(Debug, Clone, PartialEq, Reflect, Serialize, Deserialize)]
pub enum FieldValue {
Text(String),
Number(f32),
Boolean(bool),
Localization(String),
Actor(ActorId),
}
impl From<bool> for FieldValue {
fn from(value: bool) -> Self {
Self::Boolean(value)
}
}
impl From<f32> for FieldValue {
fn from(value: f32) -> Self {
Self::Number(value)
}
}
impl From<&str> for FieldValue {
fn from(value: &str) -> Self {
Self::Text(value.to_owned())
}
}
impl From<String> for FieldValue {
fn from(value: String) -> Self {
Self::Text(value)
}
}