public static MaxSegments valueOf(byte id) {
        if (id == UNSPECIFIED.id)
            return UNSPECIFIED;
        if (id == UP_TO_2.id)
            return UP_TO_2;
        if (id == UP_TO_4.id)
            return UP_TO_4;
        if (id == UP_TO_8.id)
            return UP_TO_8;
        if (id == UP_TO_16.id)
            return UP_TO_16;
        if (id == UP_TO_32.id)
            return UP_TO_32;
        if (id == UP_TO_64.id)
            return UP_TO_64;
        if (id == MORE_THAN_64.id)
            return MORE_THAN_64;

        throw new IllegalArgumentException("Unknown id: " + id);
    }