use serde::{Deserialize, Serialize};
use crate::function::FunctionMetadata;
use crate::{fmt_doc_comments, remove_test_code};
#[derive(Debug)]
pub struct ModuleDocumentation {
pub namespace: String,
pub name: String,
pub sub_modules: Vec<ModuleDocumentation>,
pub documentation: String,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub(crate) struct ModuleMetadata {
pub doc: Option<String>,
pub functions: Option<Vec<FunctionMetadata>>,
pub modules: Option<serde_json::Map<String, serde_json::Value>>,
}
impl ModuleMetadata {
pub fn fmt_doc_comments(&self) -> Option<String> {
self.doc
.clone()
.map(|dc| remove_test_code(&fmt_doc_comments(dc)))
}
}