public static bool IsExtensible(this EnumSourceGeneratorState state)
 {
     return(!state.HasBaseEnum && // derived enums must not be extensible
            state.IsReferenceType &&
            state.Settings.IsExtensible);
 }
 public static string GetRuntimeTypeName(this EnumSourceGeneratorState state)
 {
     return(state.IsExtensible() ? "{GetType().Name}" : state.Name);
 }
 public MessagePackSmartEnumCodeGenerator(EnumSourceGeneratorState state)
 {
     _state = state;
 }
コード例 #4
0
 public JsonSmartEnumCodeGenerator(EnumSourceGeneratorState state)
 {
     _state = state;
 }
コード例 #5
0
  public static void GenerateStructLayoutAttributeIfRequired(this StringBuilder sb, EnumSourceGeneratorState state)
  {
      if (!state.IsReferenceType && !state.AttributeInfo.HasStructLayoutAttribute)
      {
          sb.Append(@"
 [global::System.Runtime.InteropServices.StructLayout(global::System.Runtime.InteropServices.LayoutKind.Auto)]");
      }
  }
コード例 #6
0
 public SmartEnumCodeGenerator(EnumSourceGeneratorState state, StringBuilder stringBuilder)
 {
     _state = state ?? throw new ArgumentNullException(nameof(state));
     _sb    = stringBuilder ?? throw new ArgumentNullException(nameof(stringBuilder));
 }