/** * @param DataStream $stream * @return mixed */ public static function readFromStream(DataStream $stream) { $data = ['type' => $stream->readShort()]; switch ($data['type']) { case DataTypeEnum::CUSTOM: $data['name'] = $stream->readString(); break; case DataTypeEnum::COLLECTION_LIST: case DataTypeEnum::COLLECTION_SET: $data['value'] = self::readFromStream($stream); break; case DataTypeEnum::COLLECTION_MAP: $data['key'] = self::readFromStream($stream); $data['value'] = self::readFromStream($stream); break; } return $data; }