@@ -50,6 +50,102 @@ module Unison.Runtime.TypeTags
5050 jsonTextTag ,
5151 jsonArrTag ,
5252 jsonParseErrorTag ,
53+ avroNullTag ,
54+ avroRecordTag ,
55+ avroBytesTag ,
56+ avroFixedTag ,
57+ avroArrayTag ,
58+ avroMapTag ,
59+ avroUnionTag ,
60+ avroEnumTag ,
61+ avroStringTag ,
62+ avroIntTag ,
63+ avroLongTag ,
64+ avroFloatTag ,
65+ avroDoubleTag ,
66+ avroBooleanTag ,
67+ avroReadSchemaNullTag ,
68+ avroReadSchemaBooleanTag ,
69+ avroReadSchemaIntTag ,
70+ avroReadSchemaLongTag ,
71+ avroReadSchemaFloatTag ,
72+ avroReadSchemaDoubleTag ,
73+ avroReadSchemaBytesTag ,
74+ avroReadSchemaStringTag ,
75+ avroReadSchemaArrayTag ,
76+ avroReadSchemaMapTag ,
77+ avroReadSchemaRecordTag ,
78+ avroReadSchemaEnumTag ,
79+ avroReadSchemaUnionTag ,
80+ avroReadSchemaFixedTag ,
81+ avroReadSchemaFreeUnionTag ,
82+ avroReadSchemaNamedTypeTag ,
83+ avroTypeNameTag ,
84+ avroLogicalIntDateTag ,
85+ avroLogicalIntTimeTag ,
86+ avroLogicalIntDecimalTag ,
87+ avroReadFloatFromInt32Tag ,
88+ avroReadFloatFromInt64Tag ,
89+ avroReadFloatTag ,
90+ avroLogicalLongTimeMicrosTag ,
91+ avroLogicalLongTimestampMillisTag ,
92+ avroLogicalLongTimestampMicrosTag ,
93+ avroLogicalLongLocalTimestampMillisTag ,
94+ avroLogicalLongLocalTimestampMicrosTag ,
95+ avroLogicalLongDecimalTag ,
96+ avroLogicalFixedDurationTag ,
97+ avroLogicalFixedDecimalTag ,
98+ avroLogicalStringUUIDTag ,
99+ avroReadDoubleFromInt32Tag ,
100+ avroReadDoubleFromInt64Tag ,
101+ avroReadDoubleFromFloatTag ,
102+ avroReadDoubleTag ,
103+ avroDecimalTag ,
104+ avroReadLongInt32Tag ,
105+ avroReadLongTag ,
106+ avroLogicalBytesDecimalTag ,
107+ avroLogicalStringUuidTag ,
108+ avroReadFieldTag ,
109+ avroFieldTag ,
110+ avroFieldStatusAsIsTag ,
111+ avroFieldStatusDefaultedTag ,
112+ avroFieldStatusIgnoredTag ,
113+ avroOrderAscendingTag ,
114+ avroOrderDescendingTag ,
115+ avroOrderIgnoreTag ,
116+ avroDefaultValueIntTag ,
117+ avroDefaultValueLongTag ,
118+ avroDefaultValueFloatTag ,
119+ avroDefaultValueDoubleTag ,
120+ avroDefaultValueBytesTag ,
121+ avroDefaultValueStringTag ,
122+ avroDefaultValueArrayTag ,
123+ avroDefaultValueMapTag ,
124+ avroDefaultValueRecordTag ,
125+ avroDefaultValueUnionTag ,
126+ avroDefaultValueFixedTag ,
127+ avroDefaultValueEnumTag ,
128+ avroDefaultValueNullTag ,
129+ avroDefaultValueBooleanTag ,
130+ avroSchemaNullTag ,
131+ avroSchemaBooleanTag ,
132+ avroSchemaIntTag ,
133+ avroSchemaLongTag ,
134+ avroSchemaFloatTag ,
135+ avroSchemaDoubleTag ,
136+ avroSchemaBytesTag ,
137+ avroSchemaStringTag ,
138+ avroSchemaArrayTag ,
139+ avroSchemaMapTag ,
140+ avroSchemaNamedTypeTag ,
141+ avroSchemaRecordTag ,
142+ avroSchemaEnumTag ,
143+ avroSchemaUnionTag ,
144+ avroSchemaFixedTag ,
145+ avroReadRecordTag ,
146+ avroFixedTypeTag ,
147+ avroRecordTypeTag ,
148+ avroEnumTypeTag ,
53149 )
54150where
55151
@@ -337,6 +433,159 @@ jsonParseErrorTag
337433 pet
338434 | otherwise = error " internal error: json parse error tag"
339435
436+ avroNullTag , avroRecordTag , avroBytesTag , avroFixedTag , avroArrayTag , avroMapTag , avroUnionTag , avroEnumTag , avroStringTag , avroIntTag , avroLongTag , avroFloatTag , avroDoubleTag , avroBooleanTag :: PackedTag
437+ (avroNullTag, avroRecordTag, avroBytesTag, avroFixedTag, avroArrayTag, avroMapTag, avroUnionTag, avroEnumTag, avroStringTag, avroIntTag, avroLongTag, avroFloatTag, avroDoubleTag, avroBooleanTag)
438+ | [nlt, rct, bct, fct, act, mct, ut, et, st, it, lt, ft, dt, bt] <-
439+ mkTags
440+ " avro tags"
441+ Ty. avroRef
442+ [Ty. avroNull, Ty. avroRecord, Ty. avroBytes, Ty. avroFixed, Ty. avroArray, Ty. avroMap, Ty. avroUnion, Ty. avroEnum, Ty. avroString, Ty. avroInt, Ty. avroLong, Ty. avroFloat, Ty. avroDouble, Ty. avroBoolean] =
443+ (nlt, rct, bct, fct, act, mct, ut, et, st, it, lt, ft, dt, bt)
444+ | otherwise = error " internal error: avro tags"
445+
446+ avroFixedTypeTag :: PackedTag
447+ avroFixedTypeTag = mkSimpleTag " avroFixedTypeTag" Ty. avroFixedRef
448+
449+ avroRecordTypeTag :: PackedTag
450+ avroRecordTypeTag = mkSimpleTag " avroRecordTypeTag" Ty. avroRecordRef
451+
452+ avroEnumTypeTag :: PackedTag
453+ avroEnumTypeTag = mkSimpleTag " avroEnumTypeTag" Ty. avroEnumRef
454+
455+ avroDefaultValueIntTag , avroDefaultValueLongTag , avroDefaultValueFloatTag , avroDefaultValueDoubleTag , avroDefaultValueBytesTag , avroDefaultValueStringTag , avroDefaultValueArrayTag , avroDefaultValueMapTag , avroDefaultValueRecordTag , avroDefaultValueUnionTag , avroDefaultValueFixedTag , avroDefaultValueEnumTag , avroDefaultValueNullTag , avroDefaultValueBooleanTag :: PackedTag
456+ (avroDefaultValueIntTag, avroDefaultValueLongTag, avroDefaultValueFloatTag, avroDefaultValueDoubleTag, avroDefaultValueBytesTag, avroDefaultValueStringTag, avroDefaultValueArrayTag, avroDefaultValueMapTag, avroDefaultValueRecordTag, avroDefaultValueUnionTag, avroDefaultValueFixedTag, avroDefaultValueEnumTag, avroDefaultValueNullTag, avroDefaultValueBooleanTag)
457+ | [it, lt, ft, dt, bct, st, art, mct, rct, ut, fct, ent, nct, bot] <-
458+ mkTags
459+ " avro default value tags"
460+ Ty. avroDefaultValueRef
461+ [Ty. avroDefaultValueInt32, Ty. avroDefaultValueInt64, Ty. avroDefaultValueFloat, Ty. avroDefaultValueDouble, Ty. avroDefaultValueBytes, Ty. avroDefaultValueString, Ty. avroDefaultValueArray, Ty. avroDefaultValueMap, Ty. avroDefaultValueRecord, Ty. avroDefaultValueUnion, Ty. avroDefaultValueFixed, Ty. avroDefaultValueEnum, Ty. avroDefaultValueNull, Ty. avroDefaultValueBoolean] =
462+ (it, lt, ft, dt, bct, st, art, mct, rct, ut, fct, ent, nct, bot)
463+ | otherwise = error " internal error: avro default value tags"
464+
465+ avroReadSchemaNullTag , avroReadSchemaBooleanTag , avroReadSchemaStringTag , avroReadSchemaFloatTag , avroReadSchemaFixedTag , avroReadSchemaDoubleTag , avroReadSchemaBytesTag , avroReadSchemaNamedTypeTag , avroReadSchemaIntTag , avroReadSchemaLongTag , avroReadSchemaMapTag , avroReadSchemaRecordTag , avroReadSchemaFreeUnionTag , avroReadSchemaEnumTag , avroReadSchemaUnionTag , avroReadSchemaArrayTag :: PackedTag
466+ (avroReadSchemaNullTag, avroReadSchemaBooleanTag, avroReadSchemaStringTag, avroReadSchemaFloatTag, avroReadSchemaFixedTag, avroReadSchemaDoubleTag, avroReadSchemaBytesTag, avroReadSchemaNamedTypeTag, avroReadSchemaIntTag, avroReadSchemaLongTag, avroReadSchemaMapTag, avroReadSchemaRecordTag, avroReadSchemaFreeUnionTag, avroReadSchemaEnumTag, avroReadSchemaUnionTag, avroReadSchemaArrayTag)
467+ | [nullTag, booleanTag, stringTag, floatTag, fixedTag, doubleTag, bytesTag, namedTypeTag, intTag, longTag, mapTag, recordTag, freeUnionTag, enumTag, unionTag, arrayTag] <-
468+ mkTags
469+ " avro read schema tags"
470+ Ty. avroReadSchemaRef
471+ [Ty. avroReadSchemaNull, Ty. avroReadSchemaBoolean, Ty. avroReadSchemaString, Ty. avroReadSchemaFloat, Ty. avroReadSchemaFixed, Ty. avroReadSchemaDouble, Ty. avroReadSchemaBytes, Ty. avroReadSchemaNamedType, Ty. avroReadSchemaInt, Ty. avroReadSchemaLong, Ty. avroReadSchemaMap, Ty. avroReadSchemaRecord, Ty. avroReadSchemaFreeUnion, Ty. avroReadSchemaEnum, Ty. avroReadSchemaUnion, Ty. avroReadSchemaArray] =
472+ (nullTag, booleanTag, stringTag, floatTag, fixedTag, doubleTag, bytesTag, namedTypeTag, intTag, longTag, mapTag, recordTag, freeUnionTag, enumTag, unionTag, arrayTag)
473+ | otherwise = error " internal error: avro readschema tags"
474+
475+ avroSchemaNullTag , avroSchemaBooleanTag , avroSchemaIntTag , avroSchemaLongTag , avroSchemaFloatTag , avroSchemaDoubleTag , avroSchemaBytesTag , avroSchemaStringTag , avroSchemaArrayTag , avroSchemaMapTag , avroSchemaNamedTypeTag , avroSchemaRecordTag , avroSchemaEnumTag , avroSchemaUnionTag , avroSchemaFixedTag :: PackedTag
476+ (avroSchemaNullTag, avroSchemaBooleanTag, avroSchemaIntTag, avroSchemaLongTag, avroSchemaFloatTag, avroSchemaDoubleTag, avroSchemaBytesTag, avroSchemaStringTag, avroSchemaArrayTag, avroSchemaMapTag, avroSchemaNamedTypeTag, avroSchemaRecordTag, avroSchemaEnumTag, avroSchemaUnionTag, avroSchemaFixedTag)
477+ | [nlt, bot, it, lt, ft, dt, bst, st, at, mt, ntt, rct, ent, ut, fxt] <-
478+ mkTags
479+ " avro schema tags"
480+ Ty. avroSchemaRef
481+ [Ty. avroSchemaNull, Ty. avroSchemaBoolean, Ty. avroSchemaInt, Ty. avroSchemaLong, Ty. avroSchemaFloat, Ty. avroSchemaDouble, Ty. avroSchemaBytes, Ty. avroSchemaString, Ty. avroSchemaArray, Ty. avroSchemaMap, Ty. avroSchemaNamedType, Ty. avroSchemaRecord, Ty. avroSchemaEnum, Ty. avroSchemaUnion, Ty. avroSchemaFixed] =
482+ (nlt, bot, it, lt, ft, dt, bst, st, at, mt, ntt, rct, ent, ut, fxt)
483+ | otherwise = error " internal error: avro schema tags"
484+
485+ avroLogicalIntDateTag , avroLogicalIntTimeTag , avroLogicalIntDecimalTag :: PackedTag
486+ (avroLogicalIntDateTag, avroLogicalIntTimeTag, avroLogicalIntDecimalTag)
487+ | [dt, tt, dect] <-
488+ mkTags
489+ " avro logical int tags"
490+ Ty. avroLogicalIntRef
491+ [Ty. avroLogicalIntDate, Ty. avroLogicalIntTime, Ty. avroLogicalIntDecimal] =
492+ (dt, tt, dect)
493+ | otherwise = error " internal error: avro logical int tags"
494+
495+ avroReadFieldTag :: PackedTag
496+ avroReadFieldTag = mkSimpleTag " avroReadFieldTag" Ty. avroReadFieldRef
497+
498+ avroFieldTag :: PackedTag
499+ avroFieldTag = mkSimpleTag " avroFieldTag" Ty. avroFieldRef
500+
501+ avroReadRecordTag :: PackedTag
502+ avroReadRecordTag = mkSimpleTag " avroReadRecordTag" Ty. avroReadRecordRef
503+
504+ avroLogicalStringUuidTag :: PackedTag
505+ avroLogicalStringUuidTag = mkSimpleTag " avroLogicalStringUuidTag" Ty. avroLogicalStringRef
506+
507+ avroLogicalBytesDecimalTag :: PackedTag
508+ avroLogicalBytesDecimalTag = mkSimpleTag " avroLogicalBytesDecimalTag" Ty. avroLogicalBytesRef
509+
510+ avroLogicalLongTimeMicrosTag , avroLogicalLongTimestampMillisTag , avroLogicalLongTimestampMicrosTag , avroLogicalLongLocalTimestampMillisTag , avroLogicalLongLocalTimestampMicrosTag , avroLogicalLongDecimalTag :: PackedTag
511+ (avroLogicalLongTimeMicrosTag, avroLogicalLongTimestampMillisTag, avroLogicalLongTimestampMicrosTag, avroLogicalLongLocalTimestampMillisTag, avroLogicalLongLocalTimestampMicrosTag, avroLogicalLongDecimalTag)
512+ | [tmct, tsmst, tsmcst, ltsmst, ltsmcst, decct] <-
513+ mkTags
514+ " avro logical long tags"
515+ Ty. avroLogicalLongRef
516+ [Ty. avroLogicalLongTimeMicros, Ty. avroLogicalLongTimestampMillis, Ty. avroLogicalLongTimestampMicros, Ty. avroLogicalLongLocalTimestampMillis, Ty. avroLogicalLongLocalTimestampMicros, Ty. avroLogicalLongDecimal] =
517+ (tmct, tsmst, tsmcst, ltsmst, ltsmcst, decct)
518+ | otherwise = error " internal error: avro logical long tags"
519+
520+ avroLogicalFixedDurationTag , avroLogicalFixedDecimalTag :: PackedTag
521+ (avroLogicalFixedDurationTag, avroLogicalFixedDecimalTag)
522+ | [durt, decct] <-
523+ mkTags
524+ " avro logical fixed tags"
525+ Ty. avroLogicalFixedRef
526+ [Ty. avroLogicalFixedDuration, Ty. avroLogicalFixedDecimal] =
527+ (durt, decct)
528+ | otherwise = error " internal error: avro logical fixed tags"
529+
530+ avroLogicalStringUUIDTag :: PackedTag
531+ avroLogicalStringUUIDTag = mkSimpleTag " avroLogicalStringUUIDTag" Ty. avroLogicalStringRef
532+
533+ avroReadFloatFromInt32Tag , avroReadFloatFromInt64Tag , avroReadFloatTag :: PackedTag
534+ (avroReadFloatFromInt32Tag, avroReadFloatFromInt64Tag, avroReadFloatTag)
535+ | [i32t, i64t, ft] <-
536+ mkTags
537+ " avro read float tags"
538+ Ty. avroReadFloatRef
539+ [Ty. avroReadFloatInt32, Ty. avroReadFloatInt64, Ty. avroReadFloat] =
540+ (i32t, i64t, ft)
541+ | otherwise = error " internal error: avro read float tags"
542+
543+ avroReadDoubleFromInt32Tag , avroReadDoubleFromInt64Tag , avroReadDoubleFromFloatTag , avroReadDoubleTag :: PackedTag
544+ (avroReadDoubleFromInt32Tag, avroReadDoubleFromInt64Tag, avroReadDoubleFromFloatTag, avroReadDoubleTag)
545+ | [i32t, i64t, ft, dt] <-
546+ mkTags
547+ " avro read double tags"
548+ Ty. avroReadDoubleRef
549+ [Ty. avroReadDoubleInt32, Ty. avroReadDoubleInt64, Ty. avroReadDoubleFromFloat, Ty. avroReadDouble] =
550+ (i32t, i64t, ft, dt)
551+ | otherwise = error " internal error: avro read double tags"
552+
553+ avroReadLongInt32Tag , avroReadLongTag :: PackedTag
554+ (avroReadLongInt32Tag, avroReadLongTag)
555+ | [i32t, lt] <-
556+ mkTags
557+ " avro read long tags"
558+ Ty. avroReadLongRef
559+ [Ty. avroReadLongInt32, Ty. avroReadLong] =
560+ (i32t, lt)
561+ | otherwise = error " internal error: avro read long tags"
562+
563+ avroTypeNameTag :: PackedTag
564+ avroTypeNameTag = mkSimpleTag " avroTypeNameTag" Ty. avroTypeNameRef
565+
566+ avroDecimalTag :: PackedTag
567+ avroDecimalTag = mkSimpleTag " avroDecimalTag" Ty. avroDecimalRef
568+
569+ avroFieldStatusAsIsTag , avroFieldStatusDefaultedTag , avroFieldStatusIgnoredTag :: PackedTag
570+ (avroFieldStatusAsIsTag, avroFieldStatusDefaultedTag, avroFieldStatusIgnoredTag)
571+ | [ast, dct, igt] <-
572+ mkTags
573+ " avro field status tags"
574+ Ty. avroFieldStatusRef
575+ [Ty. avroFieldStatusAsIs, Ty. avroFieldStatusDefaulted, Ty. avroFieldStatusIgnored] =
576+ (ast, dct, igt)
577+ | otherwise = error " internal error: avro field status tags"
578+
579+ avroOrderAscendingTag , avroOrderDescendingTag , avroOrderIgnoreTag :: PackedTag
580+ (avroOrderAscendingTag, avroOrderDescendingTag, avroOrderIgnoreTag)
581+ | [ast, dct, igt] <-
582+ mkTags
583+ " avro order tags"
584+ Ty. avroOrderRef
585+ [Ty. avroOrderAscending, Ty. avroOrderDescending, Ty. avroOrderIgnore] =
586+ (ast, dct, igt)
587+ | otherwise = error " internal error: avro order tags"
588+
340589-- | A tag we use to represent the 'pure' effect case.
341590pureEffectTag :: PackedTag
342591pureEffectTag = PackedTag 0
0 commit comments