> foo); */ public function mapList(KeyedContainer> $foo): Awaitable; /** * Original thrift definition:- * void * mapSet(1: map> foo); */ public function mapSet(KeyedContainer> $foo): Awaitable; /** * Original thrift definition:- * void * listMap(1: list> foo); */ public function listMap(KeyedContainer> $foo): Awaitable; /** * Original thrift definition:- * void * listSet(1: list> foo); */ public function listSet(KeyedContainer> $foo): Awaitable; /** * Original thrift definition:- * void * turtles(1: list>>>> foo); */ public function turtles(KeyedContainer>>>> $foo): Awaitable; } /** * Original thrift service:- * NestedContainers */ interface NestedContainersIf extends \IThriftSyncIf { /** * Original thrift definition:- * void * mapList(1: map> foo); */ public function mapList(KeyedContainer> $foo): void; /** * Original thrift definition:- * void * mapSet(1: map> foo); */ public function mapSet(KeyedContainer> $foo): void; /** * Original thrift definition:- * void * listMap(1: list> foo); */ public function listMap(KeyedContainer> $foo): void; /** * Original thrift definition:- * void * listSet(1: list> foo); */ public function listSet(KeyedContainer> $foo): void; /** * Original thrift definition:- * void * turtles(1: list>>>> foo); */ public function turtles(KeyedContainer>>>> $foo): void; } /** * Original thrift service:- * NestedContainers */ interface NestedContainersAsyncClientIf extends NestedContainersAsyncIf { } /** * Original thrift service:- * NestedContainers */ interface NestedContainersClientIf extends \IThriftSyncIf { /** * Original thrift definition:- * void * mapList(1: map> foo); */ public function mapList(KeyedContainer> $foo): Awaitable; /** * Original thrift definition:- * void * mapSet(1: map> foo); */ public function mapSet(KeyedContainer> $foo): Awaitable; /** * Original thrift definition:- * void * listMap(1: list> foo); */ public function listMap(KeyedContainer> $foo): Awaitable; /** * Original thrift definition:- * void * listSet(1: list> foo); */ public function listSet(KeyedContainer> $foo): Awaitable; /** * Original thrift definition:- * void * turtles(1: list>>>> foo); */ public function turtles(KeyedContainer>>>> $foo): Awaitable; } /** * Original thrift service:- * NestedContainers */ trait NestedContainersClientBase { require extends \ThriftClientBase; } class NestedContainersAsyncClient extends \ThriftClientBase implements NestedContainersAsyncClientIf { use NestedContainersClientBase; /** * Original thrift definition:- * void * mapList(1: map> foo); */ public async function mapList(KeyedContainer> $foo): Awaitable { $hh_frame_metadata = $this->getHHFrameMetadata(); if ($hh_frame_metadata !== null) { \HH\set_frame_metadata($hh_frame_metadata); } $rpc_options = $this->getAndResetOptions() ?? \ThriftClientBase::defaultOptions(); $args = NestedContainers_mapList_args::fromShape(shape( 'foo' => (new Map($foo))->map( $_val0 ==> new Vector($_val0) ), )); await $this->asyncHandler_->genBefore("NestedContainers", "mapList", $args); $currentseqid = $this->sendImplHelper($args, "mapList", false); await $this->genAwaitResponse(NestedContainers_mapList_result::class, "mapList", true, $currentseqid, $rpc_options); } /** * Original thrift definition:- * void * mapSet(1: map> foo); */ public async function mapSet(KeyedContainer> $foo): Awaitable { $hh_frame_metadata = $this->getHHFrameMetadata(); if ($hh_frame_metadata !== null) { \HH\set_frame_metadata($hh_frame_metadata); } $rpc_options = $this->getAndResetOptions() ?? \ThriftClientBase::defaultOptions(); $args = NestedContainers_mapSet_args::fromShape(shape( 'foo' => new Map($foo), )); await $this->asyncHandler_->genBefore("NestedContainers", "mapSet", $args); $currentseqid = $this->sendImplHelper($args, "mapSet", false); await $this->genAwaitResponse(NestedContainers_mapSet_result::class, "mapSet", true, $currentseqid, $rpc_options); } /** * Original thrift definition:- * void * listMap(1: list> foo); */ public async function listMap(KeyedContainer> $foo): Awaitable { $hh_frame_metadata = $this->getHHFrameMetadata(); if ($hh_frame_metadata !== null) { \HH\set_frame_metadata($hh_frame_metadata); } $rpc_options = $this->getAndResetOptions() ?? \ThriftClientBase::defaultOptions(); $args = NestedContainers_listMap_args::fromShape(shape( 'foo' => (new Vector($foo))->map( $_val0 ==> new Map($_val0) ), )); await $this->asyncHandler_->genBefore("NestedContainers", "listMap", $args); $currentseqid = $this->sendImplHelper($args, "listMap", false); await $this->genAwaitResponse(NestedContainers_listMap_result::class, "listMap", true, $currentseqid, $rpc_options); } /** * Original thrift definition:- * void * listSet(1: list> foo); */ public async function listSet(KeyedContainer> $foo): Awaitable { $hh_frame_metadata = $this->getHHFrameMetadata(); if ($hh_frame_metadata !== null) { \HH\set_frame_metadata($hh_frame_metadata); } $rpc_options = $this->getAndResetOptions() ?? \ThriftClientBase::defaultOptions(); $args = NestedContainers_listSet_args::fromShape(shape( 'foo' => new Vector($foo), )); await $this->asyncHandler_->genBefore("NestedContainers", "listSet", $args); $currentseqid = $this->sendImplHelper($args, "listSet", false); await $this->genAwaitResponse(NestedContainers_listSet_result::class, "listSet", true, $currentseqid, $rpc_options); } /** * Original thrift definition:- * void * turtles(1: list>>>> foo); */ public async function turtles(KeyedContainer>>>> $foo): Awaitable { $hh_frame_metadata = $this->getHHFrameMetadata(); if ($hh_frame_metadata !== null) { \HH\set_frame_metadata($hh_frame_metadata); } $rpc_options = $this->getAndResetOptions() ?? \ThriftClientBase::defaultOptions(); $args = NestedContainers_turtles_args::fromShape(shape( 'foo' => (new Vector($foo))->map( $_val0 ==> (new Vector($_val0))->map( $_val1 ==> (new Map($_val1))->map( $_val2 ==> new Map($_val2) ) ) ), )); await $this->asyncHandler_->genBefore("NestedContainers", "turtles", $args); $currentseqid = $this->sendImplHelper($args, "turtles", false); await $this->genAwaitResponse(NestedContainers_turtles_result::class, "turtles", true, $currentseqid, $rpc_options); } } class NestedContainersClient extends \ThriftClientBase implements NestedContainersClientIf { use NestedContainersClientBase; /** * Original thrift definition:- * void * mapList(1: map> foo); */ public async function mapList(KeyedContainer> $foo): Awaitable { $hh_frame_metadata = $this->getHHFrameMetadata(); if ($hh_frame_metadata !== null) { \HH\set_frame_metadata($hh_frame_metadata); } $rpc_options = $this->getAndResetOptions() ?? \ThriftClientBase::defaultOptions(); $args = NestedContainers_mapList_args::fromShape(shape( 'foo' => (new Map($foo))->map( $_val0 ==> new Vector($_val0) ), )); await $this->asyncHandler_->genBefore("NestedContainers", "mapList", $args); $currentseqid = $this->sendImplHelper($args, "mapList", false); await $this->genAwaitResponse(NestedContainers_mapList_result::class, "mapList", true, $currentseqid, $rpc_options); } /** * Original thrift definition:- * void * mapSet(1: map> foo); */ public async function mapSet(KeyedContainer> $foo): Awaitable { $hh_frame_metadata = $this->getHHFrameMetadata(); if ($hh_frame_metadata !== null) { \HH\set_frame_metadata($hh_frame_metadata); } $rpc_options = $this->getAndResetOptions() ?? \ThriftClientBase::defaultOptions(); $args = NestedContainers_mapSet_args::fromShape(shape( 'foo' => new Map($foo), )); await $this->asyncHandler_->genBefore("NestedContainers", "mapSet", $args); $currentseqid = $this->sendImplHelper($args, "mapSet", false); await $this->genAwaitResponse(NestedContainers_mapSet_result::class, "mapSet", true, $currentseqid, $rpc_options); } /** * Original thrift definition:- * void * listMap(1: list> foo); */ public async function listMap(KeyedContainer> $foo): Awaitable { $hh_frame_metadata = $this->getHHFrameMetadata(); if ($hh_frame_metadata !== null) { \HH\set_frame_metadata($hh_frame_metadata); } $rpc_options = $this->getAndResetOptions() ?? \ThriftClientBase::defaultOptions(); $args = NestedContainers_listMap_args::fromShape(shape( 'foo' => (new Vector($foo))->map( $_val0 ==> new Map($_val0) ), )); await $this->asyncHandler_->genBefore("NestedContainers", "listMap", $args); $currentseqid = $this->sendImplHelper($args, "listMap", false); await $this->genAwaitResponse(NestedContainers_listMap_result::class, "listMap", true, $currentseqid, $rpc_options); } /** * Original thrift definition:- * void * listSet(1: list> foo); */ public async function listSet(KeyedContainer> $foo): Awaitable { $hh_frame_metadata = $this->getHHFrameMetadata(); if ($hh_frame_metadata !== null) { \HH\set_frame_metadata($hh_frame_metadata); } $rpc_options = $this->getAndResetOptions() ?? \ThriftClientBase::defaultOptions(); $args = NestedContainers_listSet_args::fromShape(shape( 'foo' => new Vector($foo), )); await $this->asyncHandler_->genBefore("NestedContainers", "listSet", $args); $currentseqid = $this->sendImplHelper($args, "listSet", false); await $this->genAwaitResponse(NestedContainers_listSet_result::class, "listSet", true, $currentseqid, $rpc_options); } /** * Original thrift definition:- * void * turtles(1: list>>>> foo); */ public async function turtles(KeyedContainer>>>> $foo): Awaitable { $hh_frame_metadata = $this->getHHFrameMetadata(); if ($hh_frame_metadata !== null) { \HH\set_frame_metadata($hh_frame_metadata); } $rpc_options = $this->getAndResetOptions() ?? \ThriftClientBase::defaultOptions(); $args = NestedContainers_turtles_args::fromShape(shape( 'foo' => (new Vector($foo))->map( $_val0 ==> (new Vector($_val0))->map( $_val1 ==> (new Map($_val1))->map( $_val2 ==> new Map($_val2) ) ) ), )); await $this->asyncHandler_->genBefore("NestedContainers", "turtles", $args); $currentseqid = $this->sendImplHelper($args, "turtles", false); await $this->genAwaitResponse(NestedContainers_turtles_result::class, "turtles", true, $currentseqid, $rpc_options); } /* send and recv functions */ public function send_mapList(KeyedContainer> $foo): int { $args = NestedContainers_mapList_args::fromShape(shape( 'foo' => (new Map($foo))->map( $_val0 ==> new Vector($_val0) ), )); return $this->sendImplHelper($args, "mapList", false); } public function recv_mapList(?int $expectedsequenceid = null): void { $this->recvImplHelper(NestedContainers_mapList_result::class, "mapList", true, $expectedsequenceid); } public function send_mapSet(KeyedContainer> $foo): int { $args = NestedContainers_mapSet_args::fromShape(shape( 'foo' => new Map($foo), )); return $this->sendImplHelper($args, "mapSet", false); } public function recv_mapSet(?int $expectedsequenceid = null): void { $this->recvImplHelper(NestedContainers_mapSet_result::class, "mapSet", true, $expectedsequenceid); } public function send_listMap(KeyedContainer> $foo): int { $args = NestedContainers_listMap_args::fromShape(shape( 'foo' => (new Vector($foo))->map( $_val0 ==> new Map($_val0) ), )); return $this->sendImplHelper($args, "listMap", false); } public function recv_listMap(?int $expectedsequenceid = null): void { $this->recvImplHelper(NestedContainers_listMap_result::class, "listMap", true, $expectedsequenceid); } public function send_listSet(KeyedContainer> $foo): int { $args = NestedContainers_listSet_args::fromShape(shape( 'foo' => new Vector($foo), )); return $this->sendImplHelper($args, "listSet", false); } public function recv_listSet(?int $expectedsequenceid = null): void { $this->recvImplHelper(NestedContainers_listSet_result::class, "listSet", true, $expectedsequenceid); } public function send_turtles(KeyedContainer>>>> $foo): int { $args = NestedContainers_turtles_args::fromShape(shape( 'foo' => (new Vector($foo))->map( $_val0 ==> (new Vector($_val0))->map( $_val1 ==> (new Map($_val1))->map( $_val2 ==> new Map($_val2) ) ) ), )); return $this->sendImplHelper($args, "turtles", false); } public function recv_turtles(?int $expectedsequenceid = null): void { $this->recvImplHelper(NestedContainers_turtles_result::class, "turtles", true, $expectedsequenceid); } } abstract class NestedContainersAsyncProcessorBase extends \ThriftAsyncProcessor { use \GetThriftServiceMetadata; abstract const type TThriftIf as NestedContainersAsyncIf; const classname<\IThriftServiceStaticMetadata> SERVICE_METADATA_CLASS = NestedContainersStaticMetadata::class; const string THRIFT_SVC_NAME = 'NestedContainers'; protected async function process_mapList(int $seqid, \TProtocol $input, \TProtocol $output): Awaitable { $handler_ctx = $this->eventHandler_->getHandlerContext('mapList'); $reply_type = \TMessageType::REPLY; $args = $this->readHelper(NestedContainers_mapList_args::class, $input, 'mapList', $handler_ctx); $result = NestedContainers_mapList_result::withDefaultValues(); try { $this->eventHandler_->preExec($handler_ctx, 'NestedContainers', 'mapList', $args); await $this->handler->mapList($args->foo); $this->eventHandler_->postExec($handler_ctx, 'mapList', $result); } catch (\Exception $ex) { $reply_type = \TMessageType::EXCEPTION; $this->eventHandler_->handlerError($handler_ctx, 'mapList', $ex); $result = new \TApplicationException($ex->getMessage()."\n".$ex->getTraceAsString()); } $this->writeHelper($result, 'mapList', $seqid, $handler_ctx, $output, $reply_type); } protected async function process_mapSet(int $seqid, \TProtocol $input, \TProtocol $output): Awaitable { $handler_ctx = $this->eventHandler_->getHandlerContext('mapSet'); $reply_type = \TMessageType::REPLY; $args = $this->readHelper(NestedContainers_mapSet_args::class, $input, 'mapSet', $handler_ctx); $result = NestedContainers_mapSet_result::withDefaultValues(); try { $this->eventHandler_->preExec($handler_ctx, 'NestedContainers', 'mapSet', $args); await $this->handler->mapSet($args->foo); $this->eventHandler_->postExec($handler_ctx, 'mapSet', $result); } catch (\Exception $ex) { $reply_type = \TMessageType::EXCEPTION; $this->eventHandler_->handlerError($handler_ctx, 'mapSet', $ex); $result = new \TApplicationException($ex->getMessage()."\n".$ex->getTraceAsString()); } $this->writeHelper($result, 'mapSet', $seqid, $handler_ctx, $output, $reply_type); } protected async function process_listMap(int $seqid, \TProtocol $input, \TProtocol $output): Awaitable { $handler_ctx = $this->eventHandler_->getHandlerContext('listMap'); $reply_type = \TMessageType::REPLY; $args = $this->readHelper(NestedContainers_listMap_args::class, $input, 'listMap', $handler_ctx); $result = NestedContainers_listMap_result::withDefaultValues(); try { $this->eventHandler_->preExec($handler_ctx, 'NestedContainers', 'listMap', $args); await $this->handler->listMap($args->foo); $this->eventHandler_->postExec($handler_ctx, 'listMap', $result); } catch (\Exception $ex) { $reply_type = \TMessageType::EXCEPTION; $this->eventHandler_->handlerError($handler_ctx, 'listMap', $ex); $result = new \TApplicationException($ex->getMessage()."\n".$ex->getTraceAsString()); } $this->writeHelper($result, 'listMap', $seqid, $handler_ctx, $output, $reply_type); } protected async function process_listSet(int $seqid, \TProtocol $input, \TProtocol $output): Awaitable { $handler_ctx = $this->eventHandler_->getHandlerContext('listSet'); $reply_type = \TMessageType::REPLY; $args = $this->readHelper(NestedContainers_listSet_args::class, $input, 'listSet', $handler_ctx); $result = NestedContainers_listSet_result::withDefaultValues(); try { $this->eventHandler_->preExec($handler_ctx, 'NestedContainers', 'listSet', $args); await $this->handler->listSet($args->foo); $this->eventHandler_->postExec($handler_ctx, 'listSet', $result); } catch (\Exception $ex) { $reply_type = \TMessageType::EXCEPTION; $this->eventHandler_->handlerError($handler_ctx, 'listSet', $ex); $result = new \TApplicationException($ex->getMessage()."\n".$ex->getTraceAsString()); } $this->writeHelper($result, 'listSet', $seqid, $handler_ctx, $output, $reply_type); } protected async function process_turtles(int $seqid, \TProtocol $input, \TProtocol $output): Awaitable { $handler_ctx = $this->eventHandler_->getHandlerContext('turtles'); $reply_type = \TMessageType::REPLY; $args = $this->readHelper(NestedContainers_turtles_args::class, $input, 'turtles', $handler_ctx); $result = NestedContainers_turtles_result::withDefaultValues(); try { $this->eventHandler_->preExec($handler_ctx, 'NestedContainers', 'turtles', $args); await $this->handler->turtles($args->foo); $this->eventHandler_->postExec($handler_ctx, 'turtles', $result); } catch (\Exception $ex) { $reply_type = \TMessageType::EXCEPTION; $this->eventHandler_->handlerError($handler_ctx, 'turtles', $ex); $result = new \TApplicationException($ex->getMessage()."\n".$ex->getTraceAsString()); } $this->writeHelper($result, 'turtles', $seqid, $handler_ctx, $output, $reply_type); } protected async function process_getThriftServiceMetadata(int $seqid, \TProtocol $input, \TProtocol $output): Awaitable { $this->process_getThriftServiceMetadataHelper($seqid, $input, $output, NestedContainersStaticMetadata::class); } } class NestedContainersAsyncProcessor extends NestedContainersAsyncProcessorBase { const type TThriftIf = NestedContainersAsyncIf; } abstract class NestedContainersSyncProcessorBase extends \ThriftSyncProcessor { use \GetThriftServiceMetadata; abstract const type TThriftIf as NestedContainersIf; const classname<\IThriftServiceStaticMetadata> SERVICE_METADATA_CLASS = NestedContainersStaticMetadata::class; const string THRIFT_SVC_NAME = 'NestedContainers'; protected function process_mapList(int $seqid, \TProtocol $input, \TProtocol $output): void { $handler_ctx = $this->eventHandler_->getHandlerContext('mapList'); $reply_type = \TMessageType::REPLY; $args = $this->readHelper(NestedContainers_mapList_args::class, $input, 'mapList', $handler_ctx); $result = NestedContainers_mapList_result::withDefaultValues(); try { $this->eventHandler_->preExec($handler_ctx, 'NestedContainers', 'mapList', $args); $this->handler->mapList($args->foo); $this->eventHandler_->postExec($handler_ctx, 'mapList', $result); } catch (\Exception $ex) { $reply_type = \TMessageType::EXCEPTION; $this->eventHandler_->handlerError($handler_ctx, 'mapList', $ex); $result = new \TApplicationException($ex->getMessage()."\n".$ex->getTraceAsString()); } $this->writeHelper($result, 'mapList', $seqid, $handler_ctx, $output, $reply_type); } protected function process_mapSet(int $seqid, \TProtocol $input, \TProtocol $output): void { $handler_ctx = $this->eventHandler_->getHandlerContext('mapSet'); $reply_type = \TMessageType::REPLY; $args = $this->readHelper(NestedContainers_mapSet_args::class, $input, 'mapSet', $handler_ctx); $result = NestedContainers_mapSet_result::withDefaultValues(); try { $this->eventHandler_->preExec($handler_ctx, 'NestedContainers', 'mapSet', $args); $this->handler->mapSet($args->foo); $this->eventHandler_->postExec($handler_ctx, 'mapSet', $result); } catch (\Exception $ex) { $reply_type = \TMessageType::EXCEPTION; $this->eventHandler_->handlerError($handler_ctx, 'mapSet', $ex); $result = new \TApplicationException($ex->getMessage()."\n".$ex->getTraceAsString()); } $this->writeHelper($result, 'mapSet', $seqid, $handler_ctx, $output, $reply_type); } protected function process_listMap(int $seqid, \TProtocol $input, \TProtocol $output): void { $handler_ctx = $this->eventHandler_->getHandlerContext('listMap'); $reply_type = \TMessageType::REPLY; $args = $this->readHelper(NestedContainers_listMap_args::class, $input, 'listMap', $handler_ctx); $result = NestedContainers_listMap_result::withDefaultValues(); try { $this->eventHandler_->preExec($handler_ctx, 'NestedContainers', 'listMap', $args); $this->handler->listMap($args->foo); $this->eventHandler_->postExec($handler_ctx, 'listMap', $result); } catch (\Exception $ex) { $reply_type = \TMessageType::EXCEPTION; $this->eventHandler_->handlerError($handler_ctx, 'listMap', $ex); $result = new \TApplicationException($ex->getMessage()."\n".$ex->getTraceAsString()); } $this->writeHelper($result, 'listMap', $seqid, $handler_ctx, $output, $reply_type); } protected function process_listSet(int $seqid, \TProtocol $input, \TProtocol $output): void { $handler_ctx = $this->eventHandler_->getHandlerContext('listSet'); $reply_type = \TMessageType::REPLY; $args = $this->readHelper(NestedContainers_listSet_args::class, $input, 'listSet', $handler_ctx); $result = NestedContainers_listSet_result::withDefaultValues(); try { $this->eventHandler_->preExec($handler_ctx, 'NestedContainers', 'listSet', $args); $this->handler->listSet($args->foo); $this->eventHandler_->postExec($handler_ctx, 'listSet', $result); } catch (\Exception $ex) { $reply_type = \TMessageType::EXCEPTION; $this->eventHandler_->handlerError($handler_ctx, 'listSet', $ex); $result = new \TApplicationException($ex->getMessage()."\n".$ex->getTraceAsString()); } $this->writeHelper($result, 'listSet', $seqid, $handler_ctx, $output, $reply_type); } protected function process_turtles(int $seqid, \TProtocol $input, \TProtocol $output): void { $handler_ctx = $this->eventHandler_->getHandlerContext('turtles'); $reply_type = \TMessageType::REPLY; $args = $this->readHelper(NestedContainers_turtles_args::class, $input, 'turtles', $handler_ctx); $result = NestedContainers_turtles_result::withDefaultValues(); try { $this->eventHandler_->preExec($handler_ctx, 'NestedContainers', 'turtles', $args); $this->handler->turtles($args->foo); $this->eventHandler_->postExec($handler_ctx, 'turtles', $result); } catch (\Exception $ex) { $reply_type = \TMessageType::EXCEPTION; $this->eventHandler_->handlerError($handler_ctx, 'turtles', $ex); $result = new \TApplicationException($ex->getMessage()."\n".$ex->getTraceAsString()); } $this->writeHelper($result, 'turtles', $seqid, $handler_ctx, $output, $reply_type); } protected function process_getThriftServiceMetadata(int $seqid, \TProtocol $input, \TProtocol $output): void { $this->process_getThriftServiceMetadataHelper($seqid, $input, $output, NestedContainersStaticMetadata::class); } } class NestedContainersSyncProcessor extends NestedContainersSyncProcessorBase { const type TThriftIf = NestedContainersIf; } // For backwards compatibility class NestedContainersProcessor extends NestedContainersSyncProcessor {} // HELPER FUNCTIONS AND STRUCTURES class NestedContainers_mapList_args implements \IThriftSyncStruct, \IThriftStructMetadata, \IThriftShapishSyncStruct { use \ThriftSerializationTrait; const \ThriftStructTypes::TSpec SPEC = dict[ 1 => shape( 'var' => 'foo', 'type' => \TType::MAP, 'ktype' => \TType::I32, 'vtype' => \TType::LST, 'key' => shape( 'type' => \TType::I32, ), 'val' => shape( 'type' => \TType::LST, 'etype' => \TType::I32, 'elem' => shape( 'type' => \TType::I32, ), 'format' => 'collection', ), 'format' => 'collection', ), ]; const dict FIELDMAP = dict[ 'foo' => 1, ]; const type TConstructorShape = shape( ?'foo' => ?Map>, ); const type TShape = shape( 'foo' => dict>, ... ); const int STRUCTURAL_ID = 860610040470759468; public Map> $foo; public function __construct(?Map> $foo = null)[] { $this->foo = $foo ?? Map {}; } public static function withDefaultValues()[]: this { return new static(); } public static function fromShape(self::TConstructorShape $shape)[]: this { return new static( Shapes::idx($shape, 'foo'), ); } public function getName()[]: string { return 'NestedContainers_mapList_args'; } public static function getStructMetadata()[]: \tmeta_ThriftStruct { return tmeta_ThriftStruct::fromShape( shape( "name" => "module.mapList_args", "fields" => vec[ tmeta_ThriftField::fromShape( shape( "id" => 1, "type" => tmeta_ThriftType::fromShape( shape( "t_map" => tmeta_ThriftMapType::fromShape( shape( "keyType" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_I32_TYPE, ) ), "valueType" => tmeta_ThriftType::fromShape( shape( "t_list" => tmeta_ThriftListType::fromShape( shape( "valueType" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_I32_TYPE, ) ), ) ), ) ), ) ), ) ), "name" => "foo", ) ), ], "is_union" => false, ) ); } public static function getAllStructuredAnnotations()[write_props]: \TStructAnnotations { return shape( 'struct' => dict[], 'fields' => dict[ ], ); } public static function __fromShape(self::TShape $shape)[]: this { return new static( $shape['foo'] |> Dict\map( $$, $_val0 ==> $_val0 |> new Vector($$), ) |> new Map($$), ); } public function __toShape()[]: self::TShape { return shape( 'foo' => $this->foo->map( ($_val0) ==> vec($_val0), ) |> dict($$), ); } public function getInstanceKey()[write_props]: string { return \TCompactSerializer::serialize($this); } } class NestedContainers_mapList_result extends \ThriftSyncStructWithoutResult implements \IThriftStructMetadata { use \ThriftSerializationTrait; const \ThriftStructTypes::TSpec SPEC = dict[ ]; const dict FIELDMAP = dict[ ]; const type TConstructorShape = shape( ); const int STRUCTURAL_ID = 957977401221134810; public function __construct()[] { } public static function withDefaultValues()[]: this { return new static(); } public static function fromShape(self::TConstructorShape $shape)[]: this { return new static( ); } public function getName()[]: string { return 'NestedContainers_mapList_result'; } public static function getStructMetadata()[]: \tmeta_ThriftStruct { return tmeta_ThriftStruct::fromShape( shape( "name" => "module.NestedContainers_mapList_result", "is_union" => false, ) ); } public static function getAllStructuredAnnotations()[write_props]: \TStructAnnotations { return shape( 'struct' => dict[], 'fields' => dict[ ], ); } public function getInstanceKey()[write_props]: string { return \TCompactSerializer::serialize($this); } } class NestedContainers_mapSet_args implements \IThriftSyncStruct, \IThriftStructMetadata, \IThriftShapishSyncStruct { use \ThriftSerializationTrait; const \ThriftStructTypes::TSpec SPEC = dict[ 1 => shape( 'var' => 'foo', 'type' => \TType::MAP, 'ktype' => \TType::I32, 'vtype' => \TType::SET, 'key' => shape( 'type' => \TType::I32, ), 'val' => shape( 'type' => \TType::SET, 'etype' => \TType::I32, 'elem' => shape( 'type' => \TType::I32, ), 'format' => 'collection', ), 'format' => 'collection', ), ]; const dict FIELDMAP = dict[ 'foo' => 1, ]; const type TConstructorShape = shape( ?'foo' => ?Map>, ); const type TShape = shape( 'foo' => dict>, ... ); const int STRUCTURAL_ID = 860610040470759468; public Map> $foo; public function __construct(?Map> $foo = null)[] { $this->foo = $foo ?? Map {}; } public static function withDefaultValues()[]: this { return new static(); } public static function fromShape(self::TConstructorShape $shape)[]: this { return new static( Shapes::idx($shape, 'foo'), ); } public function getName()[]: string { return 'NestedContainers_mapSet_args'; } public static function getStructMetadata()[]: \tmeta_ThriftStruct { return tmeta_ThriftStruct::fromShape( shape( "name" => "module.mapSet_args", "fields" => vec[ tmeta_ThriftField::fromShape( shape( "id" => 1, "type" => tmeta_ThriftType::fromShape( shape( "t_map" => tmeta_ThriftMapType::fromShape( shape( "keyType" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_I32_TYPE, ) ), "valueType" => tmeta_ThriftType::fromShape( shape( "t_set" => tmeta_ThriftSetType::fromShape( shape( "valueType" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_I32_TYPE, ) ), ) ), ) ), ) ), ) ), "name" => "foo", ) ), ], "is_union" => false, ) ); } public static function getAllStructuredAnnotations()[write_props]: \TStructAnnotations { return shape( 'struct' => dict[], 'fields' => dict[ ], ); } public static function __fromShape(self::TShape $shape)[]: this { return new static( $shape['foo'] |> Dict\map( $$, $_val0 ==> $_val0 |> new Set(Keyset\keys($$)), ) |> new Map($$), ); } public function __toShape()[]: self::TShape { return shape( 'foo' => $this->foo->map( ($_val0) ==> ThriftUtil::toDArray(Dict\fill_keys($_val0, true), static::class), ) |> dict($$), ); } public function getInstanceKey()[write_props]: string { return \TCompactSerializer::serialize($this); } } class NestedContainers_mapSet_result extends \ThriftSyncStructWithoutResult implements \IThriftStructMetadata { use \ThriftSerializationTrait; const \ThriftStructTypes::TSpec SPEC = dict[ ]; const dict FIELDMAP = dict[ ]; const type TConstructorShape = shape( ); const int STRUCTURAL_ID = 957977401221134810; public function __construct()[] { } public static function withDefaultValues()[]: this { return new static(); } public static function fromShape(self::TConstructorShape $shape)[]: this { return new static( ); } public function getName()[]: string { return 'NestedContainers_mapSet_result'; } public static function getStructMetadata()[]: \tmeta_ThriftStruct { return tmeta_ThriftStruct::fromShape( shape( "name" => "module.NestedContainers_mapSet_result", "is_union" => false, ) ); } public static function getAllStructuredAnnotations()[write_props]: \TStructAnnotations { return shape( 'struct' => dict[], 'fields' => dict[ ], ); } public function getInstanceKey()[write_props]: string { return \TCompactSerializer::serialize($this); } } class NestedContainers_listMap_args implements \IThriftSyncStruct, \IThriftStructMetadata, \IThriftShapishSyncStruct { use \ThriftSerializationTrait; const \ThriftStructTypes::TSpec SPEC = dict[ 1 => shape( 'var' => 'foo', 'type' => \TType::LST, 'etype' => \TType::MAP, 'elem' => shape( 'type' => \TType::MAP, 'ktype' => \TType::I32, 'vtype' => \TType::I32, 'key' => shape( 'type' => \TType::I32, ), 'val' => shape( 'type' => \TType::I32, ), 'format' => 'collection', ), 'format' => 'collection', ), ]; const dict FIELDMAP = dict[ 'foo' => 1, ]; const type TConstructorShape = shape( ?'foo' => ?Vector>, ); const type TShape = shape( 'foo' => vec>, ... ); const int STRUCTURAL_ID = 860610040470759468; public Vector> $foo; public function __construct(?Vector> $foo = null)[] { $this->foo = $foo ?? Vector {}; } public static function withDefaultValues()[]: this { return new static(); } public static function fromShape(self::TConstructorShape $shape)[]: this { return new static( Shapes::idx($shape, 'foo'), ); } public function getName()[]: string { return 'NestedContainers_listMap_args'; } public static function getStructMetadata()[]: \tmeta_ThriftStruct { return tmeta_ThriftStruct::fromShape( shape( "name" => "module.listMap_args", "fields" => vec[ tmeta_ThriftField::fromShape( shape( "id" => 1, "type" => tmeta_ThriftType::fromShape( shape( "t_list" => tmeta_ThriftListType::fromShape( shape( "valueType" => tmeta_ThriftType::fromShape( shape( "t_map" => tmeta_ThriftMapType::fromShape( shape( "keyType" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_I32_TYPE, ) ), "valueType" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_I32_TYPE, ) ), ) ), ) ), ) ), ) ), "name" => "foo", ) ), ], "is_union" => false, ) ); } public static function getAllStructuredAnnotations()[write_props]: \TStructAnnotations { return shape( 'struct' => dict[], 'fields' => dict[ ], ); } public static function __fromShape(self::TShape $shape)[]: this { return new static( $shape['foo'] |> Vec\map( $$, $_val0 ==> $_val0 |> new Map($$), ) |> new Vector($$), ); } public function __toShape()[]: self::TShape { return shape( 'foo' => $this->foo->map( ($_val0) ==> dict($_val0), ) |> vec($$), ); } public function getInstanceKey()[write_props]: string { return \TCompactSerializer::serialize($this); } } class NestedContainers_listMap_result extends \ThriftSyncStructWithoutResult implements \IThriftStructMetadata { use \ThriftSerializationTrait; const \ThriftStructTypes::TSpec SPEC = dict[ ]; const dict FIELDMAP = dict[ ]; const type TConstructorShape = shape( ); const int STRUCTURAL_ID = 957977401221134810; public function __construct()[] { } public static function withDefaultValues()[]: this { return new static(); } public static function fromShape(self::TConstructorShape $shape)[]: this { return new static( ); } public function getName()[]: string { return 'NestedContainers_listMap_result'; } public static function getStructMetadata()[]: \tmeta_ThriftStruct { return tmeta_ThriftStruct::fromShape( shape( "name" => "module.NestedContainers_listMap_result", "is_union" => false, ) ); } public static function getAllStructuredAnnotations()[write_props]: \TStructAnnotations { return shape( 'struct' => dict[], 'fields' => dict[ ], ); } public function getInstanceKey()[write_props]: string { return \TCompactSerializer::serialize($this); } } class NestedContainers_listSet_args implements \IThriftSyncStruct, \IThriftStructMetadata, \IThriftShapishSyncStruct { use \ThriftSerializationTrait; const \ThriftStructTypes::TSpec SPEC = dict[ 1 => shape( 'var' => 'foo', 'type' => \TType::LST, 'etype' => \TType::SET, 'elem' => shape( 'type' => \TType::SET, 'etype' => \TType::I32, 'elem' => shape( 'type' => \TType::I32, ), 'format' => 'collection', ), 'format' => 'collection', ), ]; const dict FIELDMAP = dict[ 'foo' => 1, ]; const type TConstructorShape = shape( ?'foo' => ?Vector>, ); const type TShape = shape( 'foo' => vec>, ... ); const int STRUCTURAL_ID = 860610040470759468; public Vector> $foo; public function __construct(?Vector> $foo = null)[] { $this->foo = $foo ?? Vector {}; } public static function withDefaultValues()[]: this { return new static(); } public static function fromShape(self::TConstructorShape $shape)[]: this { return new static( Shapes::idx($shape, 'foo'), ); } public function getName()[]: string { return 'NestedContainers_listSet_args'; } public static function getStructMetadata()[]: \tmeta_ThriftStruct { return tmeta_ThriftStruct::fromShape( shape( "name" => "module.listSet_args", "fields" => vec[ tmeta_ThriftField::fromShape( shape( "id" => 1, "type" => tmeta_ThriftType::fromShape( shape( "t_list" => tmeta_ThriftListType::fromShape( shape( "valueType" => tmeta_ThriftType::fromShape( shape( "t_set" => tmeta_ThriftSetType::fromShape( shape( "valueType" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_I32_TYPE, ) ), ) ), ) ), ) ), ) ), "name" => "foo", ) ), ], "is_union" => false, ) ); } public static function getAllStructuredAnnotations()[write_props]: \TStructAnnotations { return shape( 'struct' => dict[], 'fields' => dict[ ], ); } public static function __fromShape(self::TShape $shape)[]: this { return new static( $shape['foo'] |> Vec\map( $$, $_val0 ==> $_val0 |> new Set(Keyset\keys($$)), ) |> new Vector($$), ); } public function __toShape()[]: self::TShape { return shape( 'foo' => $this->foo->map( ($_val0) ==> ThriftUtil::toDArray(Dict\fill_keys($_val0, true), static::class), ) |> vec($$), ); } public function getInstanceKey()[write_props]: string { return \TCompactSerializer::serialize($this); } } class NestedContainers_listSet_result extends \ThriftSyncStructWithoutResult implements \IThriftStructMetadata { use \ThriftSerializationTrait; const \ThriftStructTypes::TSpec SPEC = dict[ ]; const dict FIELDMAP = dict[ ]; const type TConstructorShape = shape( ); const int STRUCTURAL_ID = 957977401221134810; public function __construct()[] { } public static function withDefaultValues()[]: this { return new static(); } public static function fromShape(self::TConstructorShape $shape)[]: this { return new static( ); } public function getName()[]: string { return 'NestedContainers_listSet_result'; } public static function getStructMetadata()[]: \tmeta_ThriftStruct { return tmeta_ThriftStruct::fromShape( shape( "name" => "module.NestedContainers_listSet_result", "is_union" => false, ) ); } public static function getAllStructuredAnnotations()[write_props]: \TStructAnnotations { return shape( 'struct' => dict[], 'fields' => dict[ ], ); } public function getInstanceKey()[write_props]: string { return \TCompactSerializer::serialize($this); } } class NestedContainers_turtles_args implements \IThriftSyncStruct, \IThriftStructMetadata, \IThriftShapishSyncStruct { use \ThriftSerializationTrait; const \ThriftStructTypes::TSpec SPEC = dict[ 1 => shape( 'var' => 'foo', 'type' => \TType::LST, 'etype' => \TType::LST, 'elem' => shape( 'type' => \TType::LST, 'etype' => \TType::MAP, 'elem' => shape( 'type' => \TType::MAP, 'ktype' => \TType::I32, 'vtype' => \TType::MAP, 'key' => shape( 'type' => \TType::I32, ), 'val' => shape( 'type' => \TType::MAP, 'ktype' => \TType::I32, 'vtype' => \TType::SET, 'key' => shape( 'type' => \TType::I32, ), 'val' => shape( 'type' => \TType::SET, 'etype' => \TType::I32, 'elem' => \HH\FIXME\UNSAFE_CAST(shape( 'type' => \TType::I32, )), 'format' => 'collection', ), 'format' => 'collection', ), 'format' => 'collection', ), 'format' => 'collection', ), 'format' => 'collection', ), ]; const dict FIELDMAP = dict[ 'foo' => 1, ]; const type TConstructorShape = shape( ?'foo' => ?Vector>>>>, ); const type TShape = shape( 'foo' => vec>>>>, ... ); const int STRUCTURAL_ID = 860610040470759468; public Vector>>>> $foo; public function __construct(?Vector>>>> $foo = null)[] { $this->foo = $foo ?? Vector {}; } public static function withDefaultValues()[]: this { return new static(); } public static function fromShape(self::TConstructorShape $shape)[]: this { return new static( Shapes::idx($shape, 'foo'), ); } public function getName()[]: string { return 'NestedContainers_turtles_args'; } public static function getStructMetadata()[]: \tmeta_ThriftStruct { return tmeta_ThriftStruct::fromShape( shape( "name" => "module.turtles_args", "fields" => vec[ tmeta_ThriftField::fromShape( shape( "id" => 1, "type" => tmeta_ThriftType::fromShape( shape( "t_list" => tmeta_ThriftListType::fromShape( shape( "valueType" => tmeta_ThriftType::fromShape( shape( "t_list" => tmeta_ThriftListType::fromShape( shape( "valueType" => tmeta_ThriftType::fromShape( shape( "t_map" => tmeta_ThriftMapType::fromShape( shape( "keyType" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_I32_TYPE, ) ), "valueType" => tmeta_ThriftType::fromShape( shape( "t_map" => tmeta_ThriftMapType::fromShape( shape( "keyType" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_I32_TYPE, ) ), "valueType" => tmeta_ThriftType::fromShape( shape( "t_set" => tmeta_ThriftSetType::fromShape( shape( "valueType" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_I32_TYPE, ) ), ) ), ) ), ) ), ) ), ) ), ) ), ) ), ) ), ) ), ) ), "name" => "foo", ) ), ], "is_union" => false, ) ); } public static function getAllStructuredAnnotations()[write_props]: \TStructAnnotations { return shape( 'struct' => dict[], 'fields' => dict[ ], ); } public static function __fromShape(self::TShape $shape)[]: this { return new static( $shape['foo'] |> Vec\map( $$, $_val3 ==> $_val3 |> Vec\map( $$, $_val2 ==> $_val2 |> Dict\map( $$, $_val1 ==> $_val1 |> Dict\map( $$, $_val0 ==> $_val0 |> new Set(Keyset\keys($$)), ) |> new Map($$), ) |> new Map($$), ) |> new Vector($$), ) |> new Vector($$), ); } public function __toShape()[]: self::TShape { return shape( 'foo' => $this->foo->map( ($_val0) ==> $_val0->map( ($_val1) ==> $_val1->map( ($_val2) ==> $_val2->map( ($_val3) ==> ThriftUtil::toDArray(Dict\fill_keys($_val3, true), static::class), ) |> dict($$), ) |> dict($$), ) |> vec($$), ) |> vec($$), ); } public function getInstanceKey()[write_props]: string { return \TCompactSerializer::serialize($this); } } class NestedContainers_turtles_result extends \ThriftSyncStructWithoutResult implements \IThriftStructMetadata { use \ThriftSerializationTrait; const \ThriftStructTypes::TSpec SPEC = dict[ ]; const dict FIELDMAP = dict[ ]; const type TConstructorShape = shape( ); const int STRUCTURAL_ID = 957977401221134810; public function __construct()[] { } public static function withDefaultValues()[]: this { return new static(); } public static function fromShape(self::TConstructorShape $shape)[]: this { return new static( ); } public function getName()[]: string { return 'NestedContainers_turtles_result'; } public static function getStructMetadata()[]: \tmeta_ThriftStruct { return tmeta_ThriftStruct::fromShape( shape( "name" => "module.NestedContainers_turtles_result", "is_union" => false, ) ); } public static function getAllStructuredAnnotations()[write_props]: \TStructAnnotations { return shape( 'struct' => dict[], 'fields' => dict[ ], ); } public function getInstanceKey()[write_props]: string { return \TCompactSerializer::serialize($this); } } class NestedContainersStaticMetadata implements \IThriftServiceStaticMetadata { public static function getServiceMetadata()[]: \tmeta_ThriftService { return tmeta_ThriftService::fromShape( shape( "name" => "module.NestedContainers", "functions" => vec[ tmeta_ThriftFunction::fromShape( shape( "name" => "mapList", "return_type" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_VOID_TYPE, ) ), "arguments" => vec[ tmeta_ThriftField::fromShape( shape( "id" => 1, "type" => tmeta_ThriftType::fromShape( shape( "t_map" => tmeta_ThriftMapType::fromShape( shape( "keyType" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_I32_TYPE, ) ), "valueType" => tmeta_ThriftType::fromShape( shape( "t_list" => tmeta_ThriftListType::fromShape( shape( "valueType" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_I32_TYPE, ) ), ) ), ) ), ) ), ) ), "name" => "foo", ) ), ], ) ), tmeta_ThriftFunction::fromShape( shape( "name" => "mapSet", "return_type" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_VOID_TYPE, ) ), "arguments" => vec[ tmeta_ThriftField::fromShape( shape( "id" => 1, "type" => tmeta_ThriftType::fromShape( shape( "t_map" => tmeta_ThriftMapType::fromShape( shape( "keyType" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_I32_TYPE, ) ), "valueType" => tmeta_ThriftType::fromShape( shape( "t_set" => tmeta_ThriftSetType::fromShape( shape( "valueType" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_I32_TYPE, ) ), ) ), ) ), ) ), ) ), "name" => "foo", ) ), ], ) ), tmeta_ThriftFunction::fromShape( shape( "name" => "listMap", "return_type" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_VOID_TYPE, ) ), "arguments" => vec[ tmeta_ThriftField::fromShape( shape( "id" => 1, "type" => tmeta_ThriftType::fromShape( shape( "t_list" => tmeta_ThriftListType::fromShape( shape( "valueType" => tmeta_ThriftType::fromShape( shape( "t_map" => tmeta_ThriftMapType::fromShape( shape( "keyType" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_I32_TYPE, ) ), "valueType" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_I32_TYPE, ) ), ) ), ) ), ) ), ) ), "name" => "foo", ) ), ], ) ), tmeta_ThriftFunction::fromShape( shape( "name" => "listSet", "return_type" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_VOID_TYPE, ) ), "arguments" => vec[ tmeta_ThriftField::fromShape( shape( "id" => 1, "type" => tmeta_ThriftType::fromShape( shape( "t_list" => tmeta_ThriftListType::fromShape( shape( "valueType" => tmeta_ThriftType::fromShape( shape( "t_set" => tmeta_ThriftSetType::fromShape( shape( "valueType" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_I32_TYPE, ) ), ) ), ) ), ) ), ) ), "name" => "foo", ) ), ], ) ), tmeta_ThriftFunction::fromShape( shape( "name" => "turtles", "return_type" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_VOID_TYPE, ) ), "arguments" => vec[ tmeta_ThriftField::fromShape( shape( "id" => 1, "type" => tmeta_ThriftType::fromShape( shape( "t_list" => tmeta_ThriftListType::fromShape( shape( "valueType" => tmeta_ThriftType::fromShape( shape( "t_list" => tmeta_ThriftListType::fromShape( shape( "valueType" => tmeta_ThriftType::fromShape( shape( "t_map" => tmeta_ThriftMapType::fromShape( shape( "keyType" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_I32_TYPE, ) ), "valueType" => tmeta_ThriftType::fromShape( shape( "t_map" => tmeta_ThriftMapType::fromShape( shape( "keyType" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_I32_TYPE, ) ), "valueType" => tmeta_ThriftType::fromShape( shape( "t_set" => tmeta_ThriftSetType::fromShape( shape( "valueType" => tmeta_ThriftType::fromShape( shape( "t_primitive" => tmeta_ThriftPrimitiveType::THRIFT_I32_TYPE, ) ), ) ), ) ), ) ), ) ), ) ), ) ), ) ), ) ), ) ), ) ), "name" => "foo", ) ), ], ) ), ], ) ); } public static function getServiceMetadataResponse()[]: \tmeta_ThriftServiceMetadataResponse { return \tmeta_ThriftServiceMetadataResponse::fromShape( shape( 'context' => \tmeta_ThriftServiceContext::fromShape( shape( 'service_info' => self::getServiceMetadata(), 'module' => \tmeta_ThriftModuleContext::fromShape( shape( 'name' => 'module', ) ), ) ), 'metadata' => \tmeta_ThriftMetadata::fromShape( shape( 'enums' => dict[ ], 'structs' => dict[ ], 'exceptions' => dict[ ], 'services' => dict[ ], ) ), ) ); } public static function getAllStructuredAnnotations()[write_props]: \TServiceAnnotations { return shape( 'service' => dict[], 'functions' => dict[ ], ); } }