encre_css/plugins/layout/overflow/
mod.rs1#![doc = include_str!("README.md")]
2#![doc(alias = "layout")]
3use crate::prelude::build_plugin::*;
4
5#[derive(Debug)]
6pub(crate) struct PluginDefinition;
7
8impl Plugin for PluginDefinition {
9 fn can_handle(&self, context: ContextCanHandle) -> bool {
10 matches!(
11 context.modifier,
12 Modifier::Builtin {
13 value: "auto"
14 | "x-auto"
15 | "y-auto"
16 | "hidden"
17 | "x-hidden"
18 | "y-hidden"
19 | "visible"
20 | "x-visible"
21 | "y-visible"
22 | "scroll"
23 | "x-scroll"
24 | "y-scroll",
25 ..
26 }
27 )
28 }
29
30 fn handle(&self, context: &mut ContextHandle) {
31 match context.modifier {
32 Modifier::Builtin { value, .. } => match *value {
33 "auto" => context.buffer.line("overflow: auto;"),
34 "x-auto" => context.buffer.line("overflow-x: auto;"),
35 "y-auto" => context.buffer.line("overflow-y: auto;"),
36 "hidden" => context.buffer.line("overflow: hidden;"),
37 "x-hidden" => context.buffer.line("overflow-x: hidden;"),
38 "y-hidden" => context.buffer.line("overflow-y: hidden;"),
39 "visible" => context.buffer.line("overflow: visible;"),
40 "x-visible" => context.buffer.line("overflow-x: visible;"),
41 "y-visible" => context.buffer.line("overflow-y: visible;"),
42 "scroll" => context.buffer.line("overflow: scroll;"),
43 "x-scroll" => context.buffer.line("overflow-x: scroll;"),
44 "y-scroll" => context.buffer.line("overflow-y: scroll;"),
45 _ => unreachable!(),
46 },
47 Modifier::Arbitrary { .. } => unreachable!(),
48 }
49 }
50}