Skip to content

Making f64::from_str case insensitive #48881

Closed

Description

@JohnBSmith

Consider making f64::from_str(src: &str) -> Result<f64, ParseFloatError> case insensitive due to the following reasons:

  1. people may see infinity as a constant and write "INF" or "Inf"
  2. f64::INFINITY is all upper case
  3. f64::NAN is all upper case
  4. is_nan is all lower case
  5. e in "12e3" is case insensitive, so it seems to be inconsequent
  6. "NaN" is camel case, but "inf" is lower case, which seems to be a little bit inconsistent
  7. to_ascii_lowercase is slow and will not be of help as "NaN" is mixed case
  8. to_ascii_uppercase is slow and will not be of help as "NaN" is mixed case
  9. a hypotetical function to_standard_form(src: &str, dest: &mut str) -> Result<(), ParseFloatError> is not possible as str cannot be mutable

So far, only "inf" and "NaN" are allowed.

Cons:

  • slows parsers down by a minimal amount
  • increases code size by a minimal amount

Activity

  1. added
    T-libs-api[DEPRECATED; DO NOT USE]
    C-feature-requestCategory: A feature request, i.e: not implemented / a PR.
    on Mar 9, 2018
  2. clarfonthey commented on Mar 9, 2018

    @clarfonthey
    Contributor

    Note that you can obtain &mut str from a String or &mut [u8]. Nonetheless, this makes sense, and I'll work on it.

  3. dtolnay commented on Mar 13, 2018

    @dtolnay
    Member

    As discussed in #48886 -- I believe we should keep this the way it is. Thanks anyway!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-feature-requestCategory: A feature request, i.e: not implemented / a PR.T-libs-api[DEPRECATED; DO NOT USE]

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions