use std::cell::RefCell;
use std::rc::{Rc, Weak};
use crate::ast::document::Document;
use crate::ast::{Node, Source};
#[derive(Debug, PartialEq, Clone)]
pub struct RawValue {
pub value: String,
pub raw: String,
}
#[derive(Debug, PartialEq, Clone)]
pub struct RootRaws {
pub after: Option<String>,
pub code_before: Option<String>,
pub code_after: Option<String>,
pub semicolon: Option<bool>,
}
pub struct Root {
pub r#type: &'static str,
pub nodes: Option<RefCell<Vec<Rc<Node>>>>,
pub parent: Option<RefCell<Weak<Document>>>,
pub raws: Option<RootRaws>,
pub source: Option<Source>,
}