use derive_more::From;
use serde::{Deserialize, Serialize};
use serde_json::Value;
use value_ext::JsonValueExt as _;
use crate::{ModelIden, adapter::AdapterKind};
#[derive(Debug, Clone, Serialize, Deserialize, From)]
pub struct CustomPart {
pub model_iden: Option<ModelIden>,
pub data: Value,
}
impl CustomPart {
pub fn data(&self) -> &Value {
&self.data
}
pub fn adapter_kind(&self) -> Option<AdapterKind> {
self.model_iden.as_ref().map(|m| m.adapter_kind)
}
pub fn typ(&self) -> Option<&str> {
self.data.x_get_str("type").ok()
}
}