private void AppendToSlow(StringBuffer stringBuffer, bool enumRegistered) { if (!enumRegistered && LogManager.Config.LazyRegisterEnums) { LogManager.RegisterEnum(TypeUtil.GetTypeFromHandle(_typeHandle)); var enumString = EnumCache.GetString(_typeHandle, _value, out _); if (enumString != null) { stringBuffer.Append(enumString); return; } } if (_value <= long.MaxValue) { stringBuffer.Append(_value, StringView.Empty); return; } if (EnumCache.IsEnumSigned(_typeHandle)) { stringBuffer.Append(unchecked ((long)_value), StringView.Empty); } else { stringBuffer.Append(_value, StringView.Empty); } }
private ILogEvent AppendEnumInternal <T>(T value) { if (!PrepareAppend(sizeof(ArgumentType) + sizeof(EnumArg))) { return(this); } AppendArgumentType(ArgumentType.Enum); *(EnumArg *)_dataPointer = new EnumArg(TypeUtil <T> .TypeHandle, EnumCache.ToUInt64(value)); _dataPointer += sizeof(EnumArg); return(this); }
public void AppendTo(StringBuffer stringBuffer) { var enumString = EnumCache.GetString(_typeHandle, _value, out var enumRegistered); if (enumString != null) { stringBuffer.Append(enumString); return; } AppendToSlow(stringBuffer, enumRegistered); }
private void AppendNullableEnumInternal <T>(T value) // T = Nullable<SomeEnum> { if (!PrepareAppend(sizeof(ArgumentType) + sizeof(EnumArg))) { return; } var enumValue = EnumCache.ToUInt64Nullable(value); if (enumValue == null) { AppendArgumentType(ArgumentType.Null); return; } AppendArgumentType(ArgumentType.Enum); *(EnumArg *)_dataPointer = new EnumArg(TypeUtilSlow <T> .UnderlyingTypeHandle, enumValue.GetValueOrDefault()); _dataPointer += sizeof(EnumArg); }
public static void RegisterEnum([NotNull] Type enumType) => EnumCache.Register(enumType);
public static void RegisterEnum(Type enumType) => EnumCache.Register(enumType);