sandbox_quant/charting/
render.rs1use 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}