UUPS proxy and file level constants, enums and structs compatibility

hi everyone,

If i use UUPS upgradeable pattern and i define a couple of constants, enums and structs at the contract level, will those values still be available after an upgrade?

I have 3 contracts and all 3 are upgradable. In contract 1 i have a couple of constants, enum and struct which are used in both contract 2 and 3.

I noticed that the contract size is way smaller if i define these at contract level and use those as it is, instead of the generated public getters. However i am not sure if these values still going to be available after an upgrade on any of my contracts.

:1234: Code to reproduce

Contract 1:

uint256 constant CONSTANT_ONE = 1;
uint256 constant CONSTANT_TWO = 2;

enum Tiers {
    Hey,
    Howdy,
    Hello
}

struct MyStruct {
    uint256 myUint256;   
}

contract Contrcat1 is Initializable, ERC1155Upgradeable, AccessControlUpgradeable, UUPSUpgradeable {

 // constants enum and struct used here

}

Contract 2

import "./Contract1.sol";

contract Contract2 is Initializable, ERC1155Upgradeable, AccessControlUpgradeable, UUPSUpgradeable {

// use the constants, enum and struct here from Contract 1
}

Contract 3

import "./Contract1.sol";

contract Contract3 is Initializable, ERC1155Upgradeable, AccessControlUpgradeable, UUPSUpgradeable {

// use the constants, enum and struct here from Contract 1
}

So my question is if these file level definitions are compatible with upgrades or not?

Thank you in advance

It's all compile-time information, which does not yield any impact on contract upgrading.