code: static <T extends Comparable> GeneralRange<T> from(Range<T> range) {
      @Nullable T lowerEndpoint = range.hasLowerBound() ? range.lowerEndpoint() : null;
      BoundType lowerBoundType = range.hasLowerBound() ? range.lowerBoundType() : OPEN;
  
      @Nullable T upperEndpoint = range.hasUpperBound() ? range.upperEndpoint() : null;
      BoundType upperBoundType = range.hasUpperBound() ? range.upperBoundType() : OPEN;
      return new GeneralRange<T>(
          Ordering.natural(),
          range.hasLowerBound(),
          lowerEndpoint,
          lowerBoundType,
          range.hasUpperBound(),
          upperEndpoint,
          upperBoundType);
    }
docs: Converts a Range to a GeneralRange.