Skip to content

Feature fields getters and setters should accept field indexes #500

Open

Description

@lnicola

I was recently looking at a small program that spent 30% of its CPU time in strcasecmp.

To be honest, I wish they'd only take the field index and never the name, but that's might really upset some users.

Activity

  1. ChristianBeilschmidt commented on Jan 30, 2024

    @ChristianBeilschmidt
    Contributor

    Well, a resolution from name to index is a convenience thing, I guess. There could be two separate methods or one that accepts both. But you definitely need the opportunity to use the names.

    So, what is your suggestion here?

  2. lnicola commented on Jan 30, 2024

    @lnicola
    MemberAuthor

    So we can add fn set_field_by_index(&self, idx: usize, value: &FieldValue), fn set_field_integer_by_index(&self, idx: usize, value: i32) and about 9 more.

    But I'm worried that users will just do:

    for feature in layer.features() {
        feature.set_field_integer("foo", 20);
    }

    instead of:

    let foo_col = layer.field_index("foo")?;
    for feature in layer.features() {
        feature.set_field_integer_by_index(foo_col, 20);
    }

    just because it's easier to find.

  3. ChristianBeilschmidt commented on Feb 4, 2024

    @ChristianBeilschmidt
    Contributor

    Yeah, either it would be …by_index and …by_name separately or you just have to keep strongly typing it to size 😄 .

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions