Built motion from commit 6a09e18b.|2.6.11
[motion2.git] / legacy-libs / protobufjs / src / types.js
1 "use strict";
2
3 /**
4  * Common type constants.
5  * @namespace
6  */
7 var types = exports;
8
9 var util = require("./util");
10
11 var s = [
12     "double",   // 0
13     "float",    // 1
14     "int32",    // 2
15     "uint32",   // 3
16     "sint32",   // 4
17     "fixed32",  // 5
18     "sfixed32", // 6
19     "int64",    // 7
20     "uint64",   // 8
21     "sint64",   // 9
22     "fixed64",  // 10
23     "sfixed64", // 11
24     "bool",     // 12
25     "string",   // 13
26     "bytes"     // 14
27 ];
28
29 function bake(values, offset) {
30     var i = 0, o = {};
31     offset |= 0;
32     while (i < values.length) o[s[i + offset]] = values[i++];
33     return o;
34 }
35
36 /**
37  * Basic type wire types.
38  * @type {Object.<string,number>}
39  * @const
40  * @property {number} double=1 Fixed64 wire type
41  * @property {number} float=5 Fixed32 wire type
42  * @property {number} int32=0 Varint wire type
43  * @property {number} uint32=0 Varint wire type
44  * @property {number} sint32=0 Varint wire type
45  * @property {number} fixed32=5 Fixed32 wire type
46  * @property {number} sfixed32=5 Fixed32 wire type
47  * @property {number} int64=0 Varint wire type
48  * @property {number} uint64=0 Varint wire type
49  * @property {number} sint64=0 Varint wire type
50  * @property {number} fixed64=1 Fixed64 wire type
51  * @property {number} sfixed64=1 Fixed64 wire type
52  * @property {number} bool=0 Varint wire type
53  * @property {number} string=2 Ldelim wire type
54  * @property {number} bytes=2 Ldelim wire type
55  */
56 types.basic = bake([
57     /* double   */ 1,
58     /* float    */ 5,
59     /* int32    */ 0,
60     /* uint32   */ 0,
61     /* sint32   */ 0,
62     /* fixed32  */ 5,
63     /* sfixed32 */ 5,
64     /* int64    */ 0,
65     /* uint64   */ 0,
66     /* sint64   */ 0,
67     /* fixed64  */ 1,
68     /* sfixed64 */ 1,
69     /* bool     */ 0,
70     /* string   */ 2,
71     /* bytes    */ 2
72 ]);
73
74 /**
75  * Basic type defaults.
76  * @type {Object.<string,*>}
77  * @const
78  * @property {number} double=0 Double default
79  * @property {number} float=0 Float default
80  * @property {number} int32=0 Int32 default
81  * @property {number} uint32=0 Uint32 default
82  * @property {number} sint32=0 Sint32 default
83  * @property {number} fixed32=0 Fixed32 default
84  * @property {number} sfixed32=0 Sfixed32 default
85  * @property {number} int64=0 Int64 default
86  * @property {number} uint64=0 Uint64 default
87  * @property {number} sint64=0 Sint32 default
88  * @property {number} fixed64=0 Fixed64 default
89  * @property {number} sfixed64=0 Sfixed64 default
90  * @property {boolean} bool=false Bool default
91  * @property {string} string="" String default
92  * @property {Array.<number>} bytes=Array(0) Bytes default
93  * @property {null} message=null Message default
94  */
95 types.defaults = bake([
96     /* double   */ 0,
97     /* float    */ 0,
98     /* int32    */ 0,
99     /* uint32   */ 0,
100     /* sint32   */ 0,
101     /* fixed32  */ 0,
102     /* sfixed32 */ 0,
103     /* int64    */ 0,
104     /* uint64   */ 0,
105     /* sint64   */ 0,
106     /* fixed64  */ 0,
107     /* sfixed64 */ 0,
108     /* bool     */ false,
109     /* string   */ "",
110     /* bytes    */ util.emptyArray,
111     /* message  */ null
112 ]);
113
114 /**
115  * Basic long type wire types.
116  * @type {Object.<string,number>}
117  * @const
118  * @property {number} int64=0 Varint wire type
119  * @property {number} uint64=0 Varint wire type
120  * @property {number} sint64=0 Varint wire type
121  * @property {number} fixed64=1 Fixed64 wire type
122  * @property {number} sfixed64=1 Fixed64 wire type
123  */
124 types.long = bake([
125     /* int64    */ 0,
126     /* uint64   */ 0,
127     /* sint64   */ 0,
128     /* fixed64  */ 1,
129     /* sfixed64 */ 1
130 ], 7);
131
132 /**
133  * Allowed types for map keys with their associated wire type.
134  * @type {Object.<string,number>}
135  * @const
136  * @property {number} int32=0 Varint wire type
137  * @property {number} uint32=0 Varint wire type
138  * @property {number} sint32=0 Varint wire type
139  * @property {number} fixed32=5 Fixed32 wire type
140  * @property {number} sfixed32=5 Fixed32 wire type
141  * @property {number} int64=0 Varint wire type
142  * @property {number} uint64=0 Varint wire type
143  * @property {number} sint64=0 Varint wire type
144  * @property {number} fixed64=1 Fixed64 wire type
145  * @property {number} sfixed64=1 Fixed64 wire type
146  * @property {number} bool=0 Varint wire type
147  * @property {number} string=2 Ldelim wire type
148  */
149 types.mapKey = bake([
150     /* int32    */ 0,
151     /* uint32   */ 0,
152     /* sint32   */ 0,
153     /* fixed32  */ 5,
154     /* sfixed32 */ 5,
155     /* int64    */ 0,
156     /* uint64   */ 0,
157     /* sint64   */ 0,
158     /* fixed64  */ 1,
159     /* sfixed64 */ 1,
160     /* bool     */ 0,
161     /* string   */ 2
162 ], 2);
163
164 /**
165  * Allowed types for packed repeated fields with their associated wire type.
166  * @type {Object.<string,number>}
167  * @const
168  * @property {number} double=1 Fixed64 wire type
169  * @property {number} float=5 Fixed32 wire type
170  * @property {number} int32=0 Varint wire type
171  * @property {number} uint32=0 Varint wire type
172  * @property {number} sint32=0 Varint wire type
173  * @property {number} fixed32=5 Fixed32 wire type
174  * @property {number} sfixed32=5 Fixed32 wire type
175  * @property {number} int64=0 Varint wire type
176  * @property {number} uint64=0 Varint wire type
177  * @property {number} sint64=0 Varint wire type
178  * @property {number} fixed64=1 Fixed64 wire type
179  * @property {number} sfixed64=1 Fixed64 wire type
180  * @property {number} bool=0 Varint wire type
181  */
182 types.packed = bake([
183     /* double   */ 1,
184     /* float    */ 5,
185     /* int32    */ 0,
186     /* uint32   */ 0,
187     /* sint32   */ 0,
188     /* fixed32  */ 5,
189     /* sfixed32 */ 5,
190     /* int64    */ 0,
191     /* uint64   */ 0,
192     /* sint64   */ 0,
193     /* fixed64  */ 1,
194     /* sfixed64 */ 1,
195     /* bool     */ 0
196 ]);