2023-10-24 00:36:08 -04:00
|
|
|
use crate::error::CustomError;
|
|
|
|
|
2023-10-24 00:51:28 -04:00
|
|
|
use super::Object;
|
|
|
|
|
2023-10-24 00:36:08 -04:00
|
|
|
#[derive(Debug)]
|
2023-10-24 00:51:28 -04:00
|
|
|
pub(crate) struct Heading {
|
|
|
|
title: Vec<Object>,
|
2023-10-27 12:14:07 -04:00
|
|
|
level: organic::types::HeadlineLevel,
|
2023-10-24 00:51:28 -04:00
|
|
|
}
|
2023-10-24 00:36:08 -04:00
|
|
|
|
|
|
|
impl Heading {
|
|
|
|
pub(crate) fn new(heading: &organic::types::Heading<'_>) -> Result<Heading, CustomError> {
|
2023-10-27 10:23:05 -04:00
|
|
|
let title = heading
|
|
|
|
.title
|
|
|
|
.iter()
|
|
|
|
.map(Object::new)
|
|
|
|
.collect::<Result<Vec<_>, _>>()?;
|
2023-10-27 12:14:07 -04:00
|
|
|
Ok(Heading {
|
|
|
|
title,
|
|
|
|
level: heading.level,
|
|
|
|
})
|
2023-10-24 00:36:08 -04:00
|
|
|
}
|
|
|
|
}
|