in src/Apache/Ignite/Internal/Binary/BinaryCommunicator.php [262:277]
private function readEnum(MessageBuffer $buffer): EnumItem
{
$enumItem = new EnumItem($buffer->readInteger());
$ordinal = $buffer->readInteger();
$enumItem->setOrdinal($ordinal);
$type = $this->typeStorage->getType($enumItem->getTypeId());
if (!$type || !$type->isEnum()) {
BinaryUtils::enumSerializationError(false, sprintf('enum type id "%d" is not registered', $enumItem->getTypeId()));
} elseif (!$type->getEnumValues() || count($type->getEnumValues()) <= $ordinal) {
BinaryUtils::enumSerializationError(false, 'type mismatch');
}
$enumValues = $type->getEnumValues();
$enumItem->setName($enumValues[$ordinal][0]);
$enumItem->setValue($enumValues[$ordinal][1]);
return $enumItem;
}