Skip to main content

PromptHandler

Trait PromptHandler 

Source
pub trait PromptHandler: Send + Sync {
    // Required methods
    fn prompt(
        &self,
        plugin: &str,
        capabilities: &Capabilities,
    ) -> Result<PromptResult, PromptError>;
    fn is_interactive(&self) -> bool;

    // Provided method
    fn prompt_escalation(
        &self,
        plugin: &str,
        old_caps: &Capabilities,
        new_caps: &Capabilities,
    ) -> Result<PromptResult, PromptError> { ... }
}
Expand description

Trait for handling permission prompts

Framework users implement this trait to customize how permission prompts are displayed and how user input is collected.

§Example

use sen_plugin_host::permission::{PromptHandler, PromptResult, PromptError};
use sen_plugin_api::Capabilities;

struct GuiPromptHandler {
    // GUI framework handle
}

impl PromptHandler for GuiPromptHandler {
    fn prompt(
        &self,
        plugin: &str,
        capabilities: &Capabilities,
    ) -> Result<PromptResult, PromptError> {
        // Show GUI dialog
        // For now, just approve
        Ok(PromptResult::AllowOnce)
    }

    fn is_interactive(&self) -> bool {
        true
    }
}

Required Methods§

Source

fn prompt( &self, plugin: &str, capabilities: &Capabilities, ) -> Result<PromptResult, PromptError>

Display a permission prompt and get user’s decision

Source

fn is_interactive(&self) -> bool

Check if this handler supports interactive prompts

Provided Methods§

Source

fn prompt_escalation( &self, plugin: &str, old_caps: &Capabilities, new_caps: &Capabilities, ) -> Result<PromptResult, PromptError>

Display an escalation warning and get user’s decision

Implementors§