use std::path::Path;
use super::Fragment;
pub(crate) fn owner_header(
node_type: &str,
language: &str,
callers: usize,
callees: usize,
complexity: usize,
) -> String {
format!(
"// type:{node_type} lang:{language} callers:{} callees:{} complexity:{}",
callers.min(50),
callees.min(50),
complexity,
)
}
pub(crate) fn orphan_header(language: &str, file_path: &Path) -> String {
format!(
"// type:module lang:{language} file:{}",
file_path.display()
)
}
pub(crate) fn enrich_fragment(
fragment: &Fragment<'_>,
file_bytes: &[u8],
header: &str,
symbol: &str,
) -> String {
let path = fragment.file_path.display();
let doc =
crate::cli::index_builder::preceding_doc_context(file_bytes, fragment.start_byte_index);
if doc.is_empty() {
format!("{header}\n// {symbol} in {path}\n{}", fragment.content)
} else {
format!(
"{header}\n// {symbol} in {path}\n{doc}\n{}",
fragment.content
)
}
}
pub(crate) fn enrich_orphan(fragment: &Fragment<'_>, header: &str) -> String {
format!("{header}\n{}", fragment.content)
}