1<?hh // strict 2/* 3 * Copyright (c) Facebook, Inc. and its affiliates. 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 * @package thrift 18 */ 19 20type TStructFieldAnnotations = shape( 21 'field' => dict<string, \IThriftStruct>, 22 'type' => dict<string, \IThriftStruct>, 23); 24 25type TStructAnnotations = shape( 26 'struct' => dict<string, \IThriftStruct>, 27 'fields' => dict<string, TStructFieldAnnotations>, 28); 29 30type TServiceAnnotations = shape( 31 'service' => dict<string, \IThriftStruct>, 32 'functions' => dict<string, dict<string, \IThriftStruct>>, 33); 34 35type TEnumAnnotations = shape( 36 'enum' => dict<string, \IThriftStruct>, 37 'constants' => dict<string, dict<string, \IThriftStruct>>, 38); 39 40interface IThriftServiceStaticMetadata { 41 public static function getAllStructuredAnnotations(): \TServiceAnnotations; 42} 43 44interface IThriftEnumStaticMetadata { 45 public static function getAllStructuredAnnotations(): \TEnumAnnotations; 46} 47 48interface IThriftConstants { 49 public static function getAllStructuredAnnotations( 50 ): dict<string, dict<string, \IThriftStruct>>; 51} 52