alma 0.1.1

A Bevy-native modal text editor with Vim-style navigation.
Documentation
//! Status conversion helpers for Vim adapter effects.

use super::effects::{VimEffect, VimEffectBatch};
use crate::{
    ecs::{
        components::buffer::ViewEntity,
        events::status::{StatusMessage, StatusMessageRequested},
    },
    vim::{VimStatusLine, VimStatusMessage},
};

/// Converts Vim status into an ECS effect.
pub(super) fn push_status_effect_from_line(
    target: ViewEntity,
    status_line: &VimStatusLine,
    effects: &mut VimEffectBatch,
) {
    let message = match status_line.message() {
        Some(VimStatusMessage::Error(error)) => StatusMessage::Error(*error),
        Some(VimStatusMessage::Info(message)) => StatusMessage::Info(message.clone()),
        None => StatusMessage::Clear,
    };
    effects.push(VimEffect::Status(StatusMessageRequested {
        target,
        message,
    }));
}