Skip to content

same_as validation option #83

Open
@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

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions