Skip to main content

sandbox_quant/charting/
render.rs

1use std::fmt::{Display, Formatter};
2
3use crate::charting::scene::{ChartScene, RenderRequest, RenderedFrame};
4
5#[derive(Debug, Clone, PartialEq, Eq)]
6pub struct RenderError {
7    message: String,
8}
9
10impl RenderError {
11    pub fn new(message: impl Into<String>) -> Self {
12        Self {
13            message: message.into(),
14        }
15    }
16}
17
18impl Display for RenderError {
19    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
20        f.write_str(&self.message)
21    }
22}
23
24impl std::error::Error for RenderError {}
25
26pub trait ChartRenderer {
27    fn render(
28        &self,
29        scene: &ChartScene,
30        request: &RenderRequest,
31    ) -> Result<RenderedFrame, RenderError>;
32}