File: sass_value.rb

package info (click to toggle)
ruby-sassc 2.4.0%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 368 kB
  • sloc: ruby: 2,277; makefile: 3
file content (97 lines) | stat: -rw-r--r-- 2,023 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# frozen_string_literal: true

module SassC
  module Native
    class SassValue < FFI::Union; end

    SassTag = enum(
      :sass_boolean,
      :sass_number,
      :sass_color,
      :sass_string,
      :sass_list,
      :sass_map,
      :sass_null,
      :sass_error,
      :sass_warning
    )

    SassSeparator = enum(
      :sass_comma,
      :sass_space
    )

    class SassUnknown < FFI::Struct
      layout :tag, SassTag
    end

    class SassBoolean < FFI::Struct
      layout :tag, SassTag,
             :value, :bool
    end

    class SassNumber < FFI::Struct
      layout :tag, SassTag,
             :value, :double,
             :unit, :string
    end

    class SassColor < FFI::Struct
      layout :tag, SassTag,
             :r, :double,
             :g, :double,
             :b, :double,
             :a, :double
    end

    class SassString < FFI::Struct
      layout :tag, SassTag,
             :value, :string
    end

    class SassList < FFI::Struct
      layout :tag, SassTag,
             :separator, SassSeparator,
             :length, :size_t,
             :values, :pointer
    end

    class SassMapPair < FFI::Struct
      layout :key, SassValue.ptr,
             :value, SassValue.ptr
    end

    class SassMap < FFI::Struct
      layout :tag, SassTag,
             :length, :size_t,
             :pairs, SassMapPair.ptr
    end

    class SassNull < FFI::Struct
      layout :tag, SassTag
    end

    class SassError < FFI::Struct
      layout :tag, SassTag,
             :message, :string
    end

    class SassWarning < FFI::Struct
      layout :tag, SassTag,
             :message, :string
    end

    class SassValue # < FFI::Union
      layout :unknown, SassUnknown,
             :boolean, SassBoolean,
             :number, SassNumber,
             :color, SassColor,
             :string, SassString,
             :list, SassList,
             :map, SassMap,
             :null, SassNull,
             :error, SassError,
             :warning, SassWarning
    end
  end
end