@Override
    public void writeTo(BerBuffer buffer) {
        buffer.beginSequence(LdapTagConst.MODIFY_REQUEST)
                .writeOctetString(dn);

        buffer.beginSequence();
        for (ModifyOperationChange change : changes) {
            buffer.beginSequence();
            ModifyOperationType type = change.getType();
            buffer.writeEnumeration(type.getValue());

            Attribute attribute = change.getAttribute();
            buffer.beginSequence()
                    .writeOctetString(attribute.getType());

            buffer.beginSequence(Asn1IdConst.TAG_SEQUENCE | Asn1IdConst.FORM_CONSTRUCTED);

            attribute.getValues()
                    .forEach(buffer::writeOctetString);

            buffer.endSequence();
            buffer.endSequence();

            buffer.endSequence();
        }
        buffer.endSequence();
        buffer.endSequence();
    }
@author James Chen
@implSpec <a href="https://datatracker.ietf.org/doc/html/rfc4511#section-4.6">4.6. Modify
          Operation</a>
turms-gateway/src/main/java/im/turms/gateway/infra/ldap/element/operation/modify/ModifyRequest.java