use serde::{Deserialize, Serialize};
use super::ChangeId;
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
#[non_exhaustive]
pub struct TextSpan {
pub text: String,
pub tracked_changes: Vec<SpanTrackedChange>,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
#[non_exhaustive]
pub struct SpanTrackedChange {
pub id: ChangeId,
pub kind: SpanChangeKind,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
#[non_exhaustive]
pub enum SpanChangeKind {
Insert,
Delete,
Replacement,
MoveFrom,
MoveTo,
Format,
}