[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] Added elementType to Array object in order to handle empty
From: |
Konstantinos Chasialis |
Subject: |
Re: [PATCH] Added elementType to Array object in order to handle empty arrays correctly. |
Date: |
Tue, 3 Aug 2021 00:49:20 +0300 |
User-agent: |
SquirrelMail/1.4.23 [email.uoa.gr] |
> Hello!
>
> Previously, we inferred the array type by extracting the first element of
> the array and checking its type. This is not very robust and does not
> handle empty arrays. I have updated the schema to contain an string-enum
> elementType that declares that type of the array's elements.
>
> Please note that NULL is missing, do you believe it should be added?
An example of this :
{
"PokeValue" : {
"type": "Array",
"elementType": "Integer",
"elements" : [
{
"value" : {
"type" : "Integer",
"value" : 1,
"size" : 64
},
"boffset" : {
"type" : "UnsignedInteger",
"value" : 0,
"size" : 64
}
},
{
"value" : {
"type" : "Integer",
"value" : 2,
"size" : 64
},
"boffset" : {
"type" : "UnsignedInteger",
"value" : 64,
"size" : 64
}
},
{
"value" : {
"type" : "Integer",
"value" : 3,
"size" : 64
},
"boffset" : {
"type" : "UnsignedInteger",
"value" : 128,
"size" : 64
}
},
{
"value" : {
"type" : "Integer",
"value" : 15,
"size" : 64
},
"boffset" : {
"type" : "UnsignedInteger",
"value" : 192,
"size" : 64
}
},
{
"value" : {
"type" : "Integer",
"value" : 25,
"size" : 64
},
"boffset" : {
"type" : "UnsignedInteger",
"value" : 256,
"size" : 64
}
},
{
"value" : {
"type" : "Integer",
"value" : -35,
"size" : 64
},
"boffset" : {
"type" : "UnsignedInteger",
"value" : 320,
"size" : 64
}
},
{
"value" : {
"type" : "Integer",
"value" : 64,
"size" : 64
},
"boffset" : {
"type" : "UnsignedInteger",
"value" : 384,
"size" : 64
}
},
{
"value" : {
"type" : "Integer",
"value" : 123,
"size" : 64
},
"boffset" : {
"type" : "UnsignedInteger",
"value" : 448,
"size" : 64
}
}
],
"mapping" : {
"mapped": true,
"strict": true,
"IOS": 213,
"offset": {
"type": "Offset",
"magnitude": {
"type": "UnsignedInteger",
"value": 123,
"size": 32
},
"unit": {
"type": "UnsignedInteger",
"value": 123,
"size": 64
}
}
}
}
}