@@ -69,6 +69,7 @@ function! s:_vital_loaded(V) abort
69
69
let s: V = a: V
70
70
let s: string = s: V .import (' Data.String' )
71
71
let s: bytes = s: V .import (' Data.List.Byte' )
72
+ let s: t = s: V .import (' Vim.Type' ).types
72
73
endfunction
73
74
74
75
function ! s: _vital_depends () abort
@@ -132,35 +133,35 @@ endfunction
132
133
133
134
function ! s: _encode (val, settings) abort
134
135
let t = type (a: val )
135
- if t == 0
136
+ if t == s: t . number
136
137
return a: val
137
- elseif t == 1
138
+ elseif t == s: t . string
138
139
let s = iconv (a: val , a: settings .from_encoding, ' utf-8' )
139
140
let s = substitute (s , ' [\x01-\x1f\\"]' , ' \=s:control_chars[submatch(0)]' , ' g' )
140
141
return ' "' . s . ' "'
141
- elseif t == 2
142
+ elseif t == s: t . func
142
143
if s: const .true == a: val
143
144
return ' true'
144
145
elseif s: const .false == a: val
145
146
return ' false'
146
147
elseif s: const .null == a: val
147
148
return ' null'
148
149
endif
149
- elseif t == 3
150
+ elseif t == s: t . list
150
151
return s: _encode_list (a: val , a: settings )
151
- elseif t == 4
152
+ elseif t == s: t . dict
152
153
return s: _encode_dict (a: val , a: settings )
153
- elseif t == 5
154
+ elseif t == s: t . float
154
155
let val = string (a: val )
155
156
if a: settings .allow_nan
156
157
let val = get (s: float_constants , val, val)
157
158
elseif has_key (s: float_constants , val)
158
159
throw ' vital: Web.JSON: Invalid float value: ' . val
159
160
endif
160
161
return val
161
- elseif t == 6 || t == 7
162
+ elseif t == s: t .bool || t == s: t . none
162
163
return get (s: special_constants , a: val )
163
- elseif t == 10
164
+ elseif t == s: t .blob
164
165
return s: _encode_list (s: bytes .from_blob (a: val ), a: settings )
165
166
endif
166
167
throw ' vital: Web.JSON: Invalid argument: ' . string (a: val )
0 commit comments