glean-parser 18.0.2__tar.gz → 18.0.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. {glean_parser-18.0.2 → glean_parser-18.0.4}/PKG-INFO +1 -1
  2. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/templates/kotlin.jinja2 +100 -1
  3. {glean_parser-18.0.2 → glean_parser-18.0.4}/.gitignore +0 -0
  4. {glean_parser-18.0.2 → glean_parser-18.0.4}/AUTHORS.md +0 -0
  5. {glean_parser-18.0.2 → glean_parser-18.0.4}/LICENSE +0 -0
  6. {glean_parser-18.0.2 → glean_parser-18.0.4}/README.md +0 -0
  7. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/__init__.py +0 -0
  8. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/__main__.py +0 -0
  9. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/coverage.py +0 -0
  10. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/data_review.py +0 -0
  11. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/go_server.py +0 -0
  12. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/javascript.py +0 -0
  13. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/javascript_server.py +0 -0
  14. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/kotlin.py +0 -0
  15. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/lint.py +0 -0
  16. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/markdown.py +0 -0
  17. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/metrics.py +0 -0
  18. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/parser.py +0 -0
  19. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/pings.py +0 -0
  20. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/python_server.py +0 -0
  21. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/ruby_server.py +0 -0
  22. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/rust.py +0 -0
  23. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/rust_server.py +0 -0
  24. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/schemas/metrics.1-0-0.schema.yaml +0 -0
  25. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/schemas/metrics.2-0-0.schema.yaml +0 -0
  26. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/schemas/pings.1-0-0.schema.yaml +0 -0
  27. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/schemas/pings.2-0-0.schema.yaml +0 -0
  28. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/schemas/tags.1-0-0.schema.yaml +0 -0
  29. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/swift.py +0 -0
  30. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/tags.py +0 -0
  31. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/templates/data_review.jinja2 +0 -0
  32. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/templates/go_server.jinja2 +0 -0
  33. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/templates/javascript.buildinfo.jinja2 +0 -0
  34. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/templates/javascript.jinja2 +0 -0
  35. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/templates/javascript_server.jinja2 +0 -0
  36. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/templates/kotlin.buildinfo.jinja2 +0 -0
  37. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/templates/markdown.jinja2 +0 -0
  38. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/templates/python_server.jinja2 +0 -0
  39. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/templates/qmldir.jinja2 +0 -0
  40. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/templates/ruby_server.jinja2 +0 -0
  41. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/templates/rust.jinja2 +0 -0
  42. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/templates/rust_server.jinja2 +0 -0
  43. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/templates/swift.jinja2 +0 -0
  44. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/translate.py +0 -0
  45. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/translation_options.py +0 -0
  46. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/util.py +0 -0
  47. {glean_parser-18.0.2 → glean_parser-18.0.4}/glean_parser/validate_ping.py +0 -0
  48. {glean_parser-18.0.2 → glean_parser-18.0.4}/pyproject.toml +0 -0
  49. {glean_parser-18.0.2 → glean_parser-18.0.4}/server_telemetry/sdk-metrics-compat.yaml +0 -0
  50. {glean_parser-18.0.2 → glean_parser-18.0.4}/server_telemetry/server-side-pings.yaml +0 -0
  51. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/conftest.py +0 -0
  52. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/all_metrics.yaml +0 -0
  53. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/all_pings.yaml +0 -0
  54. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/attribution.yaml +0 -0
  55. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/bad_attribution.yamlx +0 -0
  56. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/bad_ping.yamlx +0 -0
  57. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/core.yaml +0 -0
  58. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/dual_labeled.yaml +0 -0
  59. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/dual_labeled_invalid.yaml +0 -0
  60. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/duplicate_labeled.yaml +0 -0
  61. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/duplicate_send_in_ping.yaml +0 -0
  62. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/empty.yaml +0 -0
  63. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/event_key_ordering.yaml +0 -0
  64. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/events_data_sensitivity.yaml +0 -0
  65. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/events_with_types.yaml +0 -0
  66. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/fxa-server-metrics.yaml +0 -0
  67. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/fxa-server-pings.yaml +0 -0
  68. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/go_server_custom_ping_only_metrics.yaml +0 -0
  69. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/go_server_custom_ping_only_pings.yaml +0 -0
  70. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/go_server_events_and_custom_ping_metrics.yaml +0 -0
  71. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/go_server_events_and_custom_ping_pings.yaml +0 -0
  72. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/go_server_events_only_metrics.yaml +0 -0
  73. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/go_server_metrics_unsupported.yaml +0 -0
  74. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/invalid-ping-names.yaml +0 -0
  75. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/invalid.yamlx +0 -0
  76. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/jwe.yaml +0 -0
  77. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/metric-with-tags.yaml +0 -0
  78. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/mixed-expirations.yaml +0 -0
  79. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/name_too_similar.yaml +0 -0
  80. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/object.yaml +0 -0
  81. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/old_event_api.yamlx +0 -0
  82. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/ordering.yaml +0 -0
  83. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/pings.yaml +0 -0
  84. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/rate.yaml +0 -0
  85. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/redefined_category.yamlx +0 -0
  86. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/redefined_metric.yamlx +0 -0
  87. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/redefined_ping.yamlx +0 -0
  88. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/reserved_categories.yamlx +0 -0
  89. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/ruby_server_metrics_unsupported.yaml +0 -0
  90. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/ruby_server_pings_unsupported.yaml +0 -0
  91. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/rust_server_custom_ping_only_metrics.yaml +0 -0
  92. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/rust_server_custom_ping_only_pings.yaml +0 -0
  93. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/rust_server_events_and_custom_ping_metrics.yaml +0 -0
  94. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/rust_server_events_and_custom_ping_pings.yaml +0 -0
  95. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/rust_server_events_only_metrics.yaml +0 -0
  96. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/rust_server_metrics_unsupported.yaml +0 -0
  97. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/same_name_different_category.yaml +0 -0
  98. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/schema-violation.yaml +0 -0
  99. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/send_if_empty_with_metrics.yaml +0 -0
  100. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/server_custom_ping_only_compare.go +0 -0
  101. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/server_custom_ping_only_compare.rs +0 -0
  102. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/server_events_and_custom_ping_compare.go +0 -0
  103. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/server_events_and_custom_ping_compare.rs +0 -0
  104. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/server_events_compare.rb +0 -0
  105. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/server_events_only_compare.go +0 -0
  106. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/server_events_only_compare.rs +0 -0
  107. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/server_metrics_no_events_no_pings.yaml +0 -0
  108. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/server_metrics_with_event.yaml +0 -0
  109. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/server_pings.yaml +0 -0
  110. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/single_labeled.yaml +0 -0
  111. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/smaller.yaml +0 -0
  112. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/tags.yaml +0 -0
  113. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/telemetry_mirror.yaml +0 -0
  114. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/text.yaml +0 -0
  115. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/text_invalid.yaml +0 -0
  116. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/unknown_ping_used.yaml +0 -0
  117. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/wrong_key.yamlx +0 -0
  118. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/data/yaml_nits.yamlx +0 -0
  119. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/detekt.yml +0 -0
  120. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test-go/test.go.tmpl +0 -0
  121. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test-js/package.json +0 -0
  122. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test-js/test.js.tmpl +0 -0
  123. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test-py/test.py +0 -0
  124. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test-rb/test.rb.tmpl +0 -0
  125. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test-rs/test.rs.tmpl +0 -0
  126. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test_cli.py +0 -0
  127. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test_go_server.py +0 -0
  128. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test_javascript.py +0 -0
  129. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test_javascript_server.py +0 -0
  130. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test_kotlin.py +0 -0
  131. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test_lint.py +0 -0
  132. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test_markdown.py +0 -0
  133. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test_metrics.py +0 -0
  134. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test_parser.py +0 -0
  135. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test_pings.py +0 -0
  136. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test_python_server.py +0 -0
  137. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test_ruby_server.py +0 -0
  138. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test_rust.py +0 -0
  139. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test_rust_server.py +0 -0
  140. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test_swift.py +0 -0
  141. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test_tags.py +0 -0
  142. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test_translate.py +0 -0
  143. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test_utils.py +0 -0
  144. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/test_validate_ping.py +0 -0
  145. {glean_parser-18.0.2 → glean_parser-18.0.4}/tests/util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: glean-parser
3
- Version: 18.0.2
3
+ Version: 18.0.4
4
4
  Summary: Parser tools for Mozilla's Glean telemetry
5
5
  Project-URL: Homepage, https://mozilla.github.io/glean
6
6
  Project-URL: Repository, https://github.com/mozilla/glean_parser
@@ -68,21 +68,89 @@ data class {{ obj.name|Camelize }}{{ suffix }}(
68
68
 
69
69
  {%- macro generate_structure(name, struct) %}
70
70
  {%- if struct.type == "oneof" -%}
71
+ @Serializable(with = {{name}}.Serializer::class)
71
72
  sealed class {{ name }}(): ObjectSerialize {
73
+ internal object Serializer : KSerializer<{{name}}> {
74
+ @OptIn(kotlinx.serialization.ExperimentalSerializationApi::class)
75
+ override val descriptor = SerialKind.CONTEXTUAL
76
+
77
+ override fun deserialize(decoder: Decoder): {{name}} {
78
+ throw NullPointerException()
79
+ {{ struct.subtypes[0]|Camelize }}()
80
+ }
81
+
82
+ override fun serialize(encoder: Encoder, value: {{name}}) {
83
+ when (value) {
84
+ {% for ty in struct.subtypes %}
85
+ is {{ty|Camelize}} -> {{ty|Camelize}}.Serializer.seralize(encoder, it)
86
+ {% endfor %}
87
+ }
88
+ }
89
+ }
90
+
72
91
  {% for ty in struct.subtypes %}
73
- class {{ty|Camelize}}(val inner: kotlin.{{ty|structure_type_name}}? = null) : {{ name }}() {
92
+ {% set inner_ty = ty|Camelize %}
93
+ @Serializable(with = {{inner_ty}}.Serializer::class)
94
+ class {{inner_ty}}(val inner: kotlin.{{ty|structure_type_name}}? = null) : {{ name }}() {
74
95
  override fun intoSerializedObject(): kotlin.String {
75
96
  return this.inner?.intoSerializedObject() ?: "null"
76
97
  }
98
+
99
+ internal object Serializer : KSerializer<{{inner_ty}}> {
100
+ @OptIn(kotlinx.serialization.ExperimentalSerializationApi::class)
101
+ {% if ty == "string" %}
102
+ override val descriptor = kotlin.String.Companion.serializer().descriptor
103
+
104
+ override fun deserialize(decoder: Decoder): {{inner_ty}} {
105
+ val inner = decoder.decodeInline(descriptor).decodeString()
106
+ return {{inner_ty}}(inner = inner)
107
+ }
108
+
109
+ override fun serialize(encoder: Encoder, value: {{inner_ty}}) {
110
+ value.inner?.let {
111
+ encoder.encodeInline(descriptor).encodeString(it)
112
+ }
113
+ }
114
+ {% elif ty == "number" %}
115
+ override val descriptor = kotlin.Int.Companion.serializer().descriptor
116
+
117
+ override fun deserialize(decoder: Decoder): {{inner_ty}} {
118
+ val inner = decoder.decodeInline(descriptor).decodeInt()
119
+ return {{inner_ty}}(inner = inner)
120
+ }
121
+
122
+ override fun serialize(encoder: Encoder, value: {{inner_ty}}) {
123
+ value.inner?.let {
124
+ encoder.encodeInline(descriptor).encodeInt(it)
125
+ }
126
+ }
127
+ {% elif ty == "boolean" %}
128
+ override val descriptor = kotlin.Boolean.Companion.serializer().descriptor
129
+
130
+ override fun deserialize(decoder: Decoder): {{inner_ty}} {
131
+ val inner = decoder.decodeInline(descriptor).decodeBoolean()
132
+ return {{inner_ty}}(inner = inner)
133
+ }
134
+
135
+ override fun serialize(encoder: Encoder, value: {{inner_ty}}) {
136
+ value.inner?.let {
137
+ encoder.encodeInline(descriptor).encodeBoolean(it)
138
+ }
139
+ }
140
+ {% endif %}
141
+ }
77
142
  }
78
143
  {% endfor %}
79
144
  }
80
145
  {%- elif struct.type == "array" -%}
146
+ @Serializable(with = {{name}}.Serializer::class)
81
147
  data class {{ name }}(var items: MutableList<{{ name }}Item> = mutableListOf()) : ObjectSerialize {
82
148
  fun add(elem: {{ name }}Item) = items.add(elem)
83
149
 
84
150
  fun addAll(elements: Collection<{{ name }}Item>) = items.addAll(elements)
85
151
 
152
+ val size get() = items.size
153
+
86
154
  fun clear() = items.clear()
87
155
 
88
156
  fun remove(element: {{ name }}Item) = items.remove(element)
@@ -106,11 +174,26 @@ data class {{ obj.name|Camelize }}{{ suffix }}(
106
174
  }
107
175
  return json
108
176
  }
177
+
178
+ internal object Serializer : KSerializer<{{name}}> {
179
+ @OptIn(kotlinx.serialization.ExperimentalSerializationApi::class)
180
+ override val descriptor = listSerialDescriptor<String>()
181
+
182
+ override fun deserialize(decoder: Decoder): {{ name }} {
183
+ val list = decoder.decodeSerializableValue(ListSerializer(serializer<{{name}}Item>()))
184
+ return {{name}}(items = list.toMutableList())
185
+ }
186
+
187
+ override fun serialize(encoder: Encoder, value: {{name}}) {
188
+ encoder.encodeSerializableValue(ListSerializer(serializer<{{name}}Item>()), value.items)
189
+ }
190
+ }
109
191
  }
110
192
 
111
193
  {{ generate_structure(name ~ "Item", struct["items"]) }}
112
194
 
113
195
  {%- elif struct.type == "object" -%}
196
+ @Serializable
114
197
  data class {{ name }}(
115
198
  {% for itemname, val in struct.properties.items() %}
116
199
  {% if val.type == "array" %}
@@ -127,7 +210,12 @@ data class {{ obj.name|Camelize }}{{ suffix }}(
127
210
  override fun intoSerializedObject(): String {
128
211
  var __obj: MutableList<String> = mutableListOf()
129
212
  {% for itemname, val in struct.properties.items() %}
213
+ {% if val.type == "array" %}
214
+ if (this.{{itemname|camelize}}.size > 0) {
215
+ val {{itemname|camelize}} = this.{{itemname|camelize}}
216
+ {% else %}
130
217
  this.{{itemname|camelize}}?.let { {{itemname|camelize}} ->
218
+ {% endif %}
131
219
  val __elem = buildString {
132
220
  append("\"{{itemname}}\":")
133
221
  append({{itemname|camelize}}.intoSerializedObject())
@@ -200,6 +288,17 @@ import {{ glean_namespace }}.private.LabeledMetricType // ktlint-disable import-
200
288
  {% endif %}
201
289
  {% if has_object_metrics %}
202
290
  import {{ glean_namespace }}.private.intoSerializedObject
291
+ import kotlinx.serialization.KSerializer
292
+ import kotlinx.serialization.Serializable
293
+ import kotlinx.serialization.builtins.ListSerializer
294
+ import kotlinx.serialization.builtins.serializer
295
+ import kotlinx.serialization.descriptors.listSerialDescriptor
296
+ import kotlinx.serialization.descriptors.SerialKind
297
+ import kotlinx.serialization.encodeToString
298
+ import kotlinx.serialization.encoding.Decoder
299
+ import kotlinx.serialization.encoding.Encoder
300
+ import kotlinx.serialization.json.Json
301
+ import kotlinx.serialization.serializer
203
302
  {% endif %}
204
303
 
205
304
  {# HACK HACK HACK -- typealiases MUST BE top-level #}
File without changes
File without changes
File without changes
File without changes