tailwind_rs_core/utilities/layout/
overscroll.rs1use crate::classes::ClassBuilder;
4use serde::{Deserialize, Serialize};
5use std::fmt;
6
7#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
9pub enum OverscrollBehavior {
10 Auto,
12 Contain,
14 None,
16}
17
18impl fmt::Display for OverscrollBehavior {
19 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
20 match self {
21 OverscrollBehavior::Auto => write!(f, "overscroll-auto"),
22 OverscrollBehavior::Contain => write!(f, "overscroll-contain"),
23 OverscrollBehavior::None => write!(f, "overscroll-none"),
24 }
25 }
26}
27
28pub trait OverscrollBehaviorUtilities {
30 fn overscroll_behavior(self, overscroll: OverscrollBehavior) -> Self;
31}
32
33impl OverscrollBehaviorUtilities for ClassBuilder {
34 fn overscroll_behavior(self, overscroll: OverscrollBehavior) -> Self {
35 self.class(overscroll.to_string())
36 }
37}
38
39#[cfg(test)]
40mod tests {
41 use super::*;
42
43 #[test]
44 fn test_overscroll_behavior_utilities() {
45 let classes = ClassBuilder::new()
46 .overscroll_behavior(OverscrollBehavior::Contain)
47 .build();
48
49 assert!(classes.to_css_classes().contains("overscroll-contain"));
50 }
51}