code: public static FieldInfo of(Enum<?> enumValue) {
      try {
        FieldInfo result = FieldInfo.of(enumValue.getClass().getField(enumValue.name()));
        Preconditions.checkArgument(
            result != null, "enum constant missing @Value or @NullValue annotation: %s", enumValue);
        return result;
      } catch (NoSuchFieldException e) {
        // not possible
        throw new RuntimeException(e);
      }
    }
docs: Returns the field information for the given enum value.
  
  @param enumValue enum value
  @return field information
  @throws IllegalArgumentException if the enum value has no value annotation
  @since 1.4