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; }
public JsonSmartEnumCodeGenerator(EnumSourceGeneratorState state) { _state = state; }
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)]"); } }
public SmartEnumCodeGenerator(EnumSourceGeneratorState state, StringBuilder stringBuilder) { _state = state ?? throw new ArgumentNullException(nameof(state)); _sb = stringBuilder ?? throw new ArgumentNullException(nameof(stringBuilder)); }