示例#1
0
function protobufToDatum(pb\Datum $datum)
{
    switch ($datum->getType()) {
        case pb\Datum_DatumType::PB_R_NULL:
            return NullDatum::_fromProtobuffer($datum);
        case pb\Datum_DatumType::PB_R_BOOL:
            return BoolDatum::_fromProtobuffer($datum);
        case pb\Datum_DatumType::PB_R_NUM:
            return NumberDatum::_fromProtobuffer($datum);
        case pb\Datum_DatumType::PB_R_STR:
            return StringDatum::_fromProtobuffer($datum);
        case pb\Datum_DatumType::PB_R_ARRAY:
            return ArrayDatum::_fromProtobuffer($datum);
        case pb\Datum_DatumType::PB_R_OBJECT:
            return ObjectDatum::_fromProtobuffer($datum);
        default:
            throw new RqlDriverError("Unhandled datum type " . $datum->getType());
    }
}