Skip to content

same_as validation option #83

@alexander-yevsyukov

Description

@alexander-yevsyukov

In some cases, especially when creating entity states, an ID field has a value which equals the value of a field of a nested message.

For example, in ProtoData, ProtobufSourceFile message has the ID field file_path, which has the same value as the path value of the nested File message contained in the file field:

message ProtobufSourceFile {
    option (entity).kind = VIEW;

    // The relative path to the file.
    //
    // Must be the same as `file.path`.
    //
    FilePath file_path = 1;

    File file = 2;
    ...
}

A programmer has to remember this fact, and currently there's no way to guard him against an error. It would be more convenient to have a validation option, which ensures that field values are equal:

message ProtobufSourceFile {
    option (entity).kind = VIEW;

    // The relative path to the file.
    //
    // Must be the same as `file.path`.
    //
    FilePath file_path = 1 [(same_as) = "file.path");

    File file = 2;
    ...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions