func NewXABranchXid()

in pkg/datasource/sql/xa_branch_xid.go [38:59]


func NewXABranchXid(opt ...Option) *XABranchXid {
	xABranchXid := &XABranchXid{}

	for _, fn := range opt {
		fn(xABranchXid)
	}

	// encode
	if (xABranchXid.xid != "" || xABranchXid.branchId != 0) &&
		len(xABranchXid.globalTransactionId) == 0 &&
		len(xABranchXid.branchQualifier) == 0 {
		encode(xABranchXid)
	}

	// decode
	if xABranchXid.xid == "" && xABranchXid.branchId == 0 &&
		(len(xABranchXid.globalTransactionId) > 0 || len(xABranchXid.branchQualifier) > 0) {
		decode(xABranchXid)
	}

	return xABranchXid
}