use super::{page_head::PageHead, RequestContext};
use crate::server::{Metadata, PageLinks, PageScripts};
use std::ops::Deref;
pub struct LayoutContext {
context: RequestContext,
head: PageHead,
}
impl LayoutContext {
pub fn new(context: RequestContext, head: PageHead) -> Self {
LayoutContext {
context,
head,
}
}
pub fn title(&mut self, title: impl Into<String>) {
self.head.title(title.into());
}
pub fn metadata(&mut self, metadata: Metadata) {
self.head.metadata(metadata);
}
pub fn links(&mut self, links: PageLinks) {
self.head.links(links);
}
pub fn scripts(&mut self, scripts: PageScripts) {
self.head.scripts(scripts);
}
}
impl Deref for LayoutContext {
type Target = RequestContext;
fn deref(&self) -> &Self::Target {
&self.context
}
}