// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
syntax = "proto3";

package qtprotobufnamespace.tests.nested;
import "externalpackage.proto";

message NestedFieldMessage {
    sint32 testFieldInt = 1;
    message NestedMessage {
        sint32 testFieldInt = 1;
    }
    message UnusedNestedMessage {
        sint32 testFieldInt = 1;
    }
    NestedMessage nested = 2;
}

message NestedFieldMessage2 {
    message NestedMessageLevel1 {
        message NestedMessageLevel2 {
            sint32 testFieldInt = 1;
        }
        NestedMessageLevel2 nested = 1;
    }
    NestedMessageLevel1 nested1 = 2;
    NestedMessageLevel1.NestedMessageLevel2 nested2 = 3;
}

message NeighborNested {
    NestedFieldMessage.NestedMessage neighborNested = 1;
    NestedFieldMessage2.NestedMessageLevel1.NestedMessageLevel2 neighborNested2 = 2;
}

message NestedExternal {
    qtprotobufnamespace1.tests.nested.NestedFieldMessage.NestedMessage externalNested = 1;
}

message NestedNoFields {
    message Nested {
        sint32 testFieldInt = 1;
    }
}

message NestedCyclingA {
    message NestedCyclingB {
        NestedCyclingAA.NestedCyclingBB testField = 1;
    }
}

message NestedCyclingAA {
    message NestedCyclingBB {
        NestedCyclingA.NestedCyclingB testField = 1;
    }
}
