• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 The Flutter Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_SOURCE_FLUTTERSTANDARDCODECINTERNAL_H_
6 #define SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_SOURCE_FLUTTERSTANDARDCODECINTERNAL_H_
7 
8 #include "flutter/shell/platform/darwin/common/framework/Headers/FlutterCodecs.h"
9 
10 typedef NS_ENUM(NSInteger, FlutterStandardField) {
11   FlutterStandardFieldNil,
12   FlutterStandardFieldTrue,
13   FlutterStandardFieldFalse,
14   FlutterStandardFieldInt32,
15   FlutterStandardFieldInt64,
16   FlutterStandardFieldIntHex,
17   FlutterStandardFieldFloat64,
18   FlutterStandardFieldString,
19   // The following must match the corresponding order from `FlutterStandardDataType`.
20   FlutterStandardFieldUInt8Data,
21   FlutterStandardFieldInt32Data,
22   FlutterStandardFieldInt64Data,
23   FlutterStandardFieldFloat64Data,
24   FlutterStandardFieldList,
25   FlutterStandardFieldMap,
26 };
27 
28 namespace flutter {
FlutterStandardFieldForDataType(FlutterStandardDataType type)29 FlutterStandardField FlutterStandardFieldForDataType(FlutterStandardDataType type) {
30   return (FlutterStandardField)(type + FlutterStandardFieldUInt8Data);
31 }
FlutterStandardDataTypeForField(FlutterStandardField field)32 FlutterStandardDataType FlutterStandardDataTypeForField(FlutterStandardField field) {
33   return (FlutterStandardDataType)(field - FlutterStandardFieldUInt8Data);
34 }
elementSizeForFlutterStandardDataType(FlutterStandardDataType type)35 UInt8 elementSizeForFlutterStandardDataType(FlutterStandardDataType type) {
36   switch (type) {
37     case FlutterStandardDataTypeUInt8:
38       return 1;
39     case FlutterStandardDataTypeInt32:
40       return 4;
41     case FlutterStandardDataTypeInt64:
42       return 8;
43     case FlutterStandardDataTypeFloat64:
44       return 8;
45   }
46 }
47 }  // namespace flutter
48 
49 #endif  // SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTERSTANDARDCODECINTERNAL_H_
50