InteractiveWidget

Trait InteractiveWidget 

Source
pub trait InteractiveWidget:
    Debug
    + Send
    + Sync {
    // Required methods
    fn id(&self) -> &str;
    fn widget_type(&self) -> WidgetType;
    fn update_data(&mut self, data: Value) -> Result<()>;
    fn handle_interaction(
        &mut self,
        event: WidgetEvent,
    ) -> Result<Option<WidgetEventResponse>>;
    fn render(&self, context: &RenderContext) -> Result<WidgetRender>;
    fn config(&self) -> &WidgetConfig;
    fn update_config(&mut self, config: WidgetConfig) -> Result<()>;
    fn state(&self) -> Value;
    fn restore_state(&mut self, state: Value) -> Result<()>;
    fn validate_data(&self, data: &Value) -> Result<()>;
}
Expand description

Interactive widget trait

Required Methods§

Source

fn id(&self) -> &str

Get widget ID

Source

fn widget_type(&self) -> WidgetType

Get widget type

Source

fn update_data(&mut self, data: Value) -> Result<()>

Update widget with new data

Source

fn handle_interaction( &mut self, event: WidgetEvent, ) -> Result<Option<WidgetEventResponse>>

Handle user interaction

Source

fn render(&self, context: &RenderContext) -> Result<WidgetRender>

Render widget to context

Source

fn config(&self) -> &WidgetConfig

Get widget configuration

Source

fn update_config(&mut self, config: WidgetConfig) -> Result<()>

Update widget configuration

Source

fn state(&self) -> Value

Get current state

Source

fn restore_state(&mut self, state: Value) -> Result<()>

Restore from state

Source

fn validate_data(&self, data: &Value) -> Result<()>

Validate widget data

Implementors§