Skip to main content

mixtape_core/
presentation.rs

1/// Display context for tool presentation
2///
3/// Indicates the target display format for tool inputs and outputs.
4/// This allows the agent to select the appropriate presenter for the context.
5#[derive(Debug, Clone, Copy, PartialEq, Eq)]
6pub enum Display {
7    /// Command-line interface presentation (ANSI-formatted text)
8    Cli,
9    // Future: Web, Tui, etc.
10}
11
12#[cfg(test)]
13mod tests {
14    use super::*;
15
16    #[test]
17    fn test_display_cli_variant() {
18        let display = Display::Cli;
19        assert_eq!(display, Display::Cli);
20    }
21
22    #[test]
23    fn test_display_clone() {
24        let display = Display::Cli;
25        #[allow(clippy::clone_on_copy)] // Intentionally testing Clone trait
26        let cloned = display.clone();
27        assert_eq!(display, cloned);
28    }
29
30    #[test]
31    fn test_display_copy() {
32        let display = Display::Cli;
33        let copied = display; // Copy, not move
34        assert_eq!(display, copied);
35    }
36
37    #[test]
38    fn test_display_debug() {
39        let display = Display::Cli;
40        let debug_str = format!("{:?}", display);
41        assert_eq!(debug_str, "Cli");
42    }
43}