0 | module Text.CSS.Angle
 1 |
 2 | %default total
 3 |
 4 | public export
 5 | data Angle : Type where
 6 |   Deg  : Double -> Angle
 7 |   Rad  : Double -> Angle
 8 |   Grad : Double -> Angle
 9 |   Turn : Double -> Angle
10 |
11 | export
12 | Interpolation Angle where
13 |   interpolate (Deg x)  = show x ++ "deg"
14 |   interpolate (Rad x)  = show x ++ "rad"
15 |   interpolate (Grad x) = show x ++ "grad"
16 |   interpolate (Turn x) = show x ++ "turn"
17 |
18 | export %inline
19 | deg : Cast Angle a => Double -> a
20 | deg = cast . Deg
21 |
22 | export %inline
23 | rad : Cast Angle a => Double -> a
24 | rad = cast . Rad
25 |
26 | export %inline
27 | grad : Cast Angle a => Double -> a
28 | grad = cast . Grad
29 |
30 | export %inline
31 | turn : Cast Angle a => Double -> a
32 | turn = cast . Turn
33 |