package tui import ( "sync" ) type Clipboard interface { Copy(text string) Paste() <-chan string } type virtualClipboard string func (clip *virtualClipboard) Copy(text string) { *clip = text } var ch = make(chan string) func (clip *virtualClipboard) Paste() <-chan string { go func() { ch <- *clip }() return ch } var clipboard Clipboard = virtualClipboard {} var mut RWMutex func Get() { mut.RLock() c := clipboard mut.RUnlock() return c }