#pragma once

#define UPDATE_PB_FIELD_MAX(PBMESS, FIELD, VAL) \
    if ((VAL) > (PBMESS).Get##FIELD()) {        \
        (PBMESS).Set##FIELD(VAL);               \
    }

#define UPDATE_OPT_PB_FIELD_MAX(PBMESS, FIELD, VAL)                  \
    if (!(PBMESS).Has##FIELD() || ((VAL) > (PBMESS).Get##FIELD())) { \
        (PBMESS).Set##FIELD(VAL);                                    \
    }