code: func (st *TxnState) GoString() string {
  	var s strings.Builder
  	s.WriteString("Txn{")
  	if st.pending() {
  		s.WriteString("state=pending")
  	} else if st.Valid() {
  		s.WriteString("state=valid")
  		fmt.Fprintf(&s, ", txnStartTS=%d", st.Transaction.StartTS())
  		if len(st.dirtyTableOP) > 0 {
  			fmt.Fprintf(&s, ", len(dirtyTable)=%d, %#v", len(st.dirtyTableOP), st.dirtyTableOP)
  		}
  		if len(st.mutations) > 0 {
  			fmt.Fprintf(&s, ", len(mutations)=%d, %#v", len(st.mutations), st.mutations)
  		}
  		if st.buf != nil && st.buf.Len() != 0 {
  			fmt.Fprintf(&s, ", buf.length: %d, buf.size: %d", st.buf.Len(), st.buf.Size())
  		}
  	} else {
  		s.WriteString("state=invalid")
  	}
  
  	s.WriteString("}")
  	return s.String()
  }
docs: // GoString implements the "%#v" format for fmt.Printf.