package storage // Modify is a single modification to TinyKV's underlying storage. type Modify struct { Data interface{} } type Put struct { Key []byte Value []byte Cf string } type Delete struct { Key []byte Cf string } func (m *Modify) Key() []byte { switch m.Data.(type) { case Put: return m.Data.(Put).Key case Delete: return m.Data.(Delete).Key } return nil } func (m *Modify) Value() []byte { if putData, ok := m.Data.(Put); ok { return putData.Value } return nil } func (m *Modify) Cf() string { switch m.Data.(type) { case Put: return m.Data.(Put).Cf case Delete: return m.Data.(Delete).Cf } return "" }