[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-06-27 UTC."],[],[],null,["# Packet\n======\n\nConstructs for working with packets.\n\nSummary\n-------\n\nFunctions\n---------\n\n### FromPacket\n\n```c++\nabsl::StatusOr\u003c T \u003e FromPacket(\n Packet p\n)\n``` \nFromPacket attempts to unmarshal a `Packet` into a desired C++ Type.\n\nAn error code will be returned if `p` cannot be extracted as the requested C++ type. \n\n### ToPacket\n\n```c++\nabsl::StatusOr\u003c Packet \u003e ToPacket(\n T && t\n)\n``` \nToPacket marshals an object of C++ type `T` into a `Packet`.\n\nThe set of possible C++ types that can be marshalled are listed in visionai/streams/packet/packet_codecs/codec_selector.h"]]