use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(rename = "LogReference")]
pub struct LogReference {
#[serde(rename = "type")]
pub r#type: LogReferenceTag,
#[serde(skip_serializing_if = "String::is_empty")]
#[schemars(extend("omitempty" = true))]
pub path: String,
}
impl LogReference {
pub fn new(path: String) -> Self {
Self {
r#type: LogReferenceTag::Reference,
path,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[serde(rename_all = "lowercase")]
#[schemars(rename = "LogReferenceTag")]
pub enum LogReferenceTag {
Reference,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[schemars(rename = "IndexedLogReference")]
pub struct IndexedLogReference {
#[serde(rename = "type")]
pub r#type: LogReferenceTag,
#[serde(skip_serializing_if = "String::is_empty")]
#[schemars(extend("omitempty" = true))]
pub path: String,
pub index: u64,
}
impl IndexedLogReference {
pub fn new(path: String, index: u64) -> Self {
Self {
r#type: LogReferenceTag::Reference,
path,
index,
}
}
}