package x import "io" import "strings" import "git.tebibyte.media/tomo/xgbsel/v2" import "git.tebibyte.media/tomo/tomo/data" type selectionData struct { data data.Data } func (this selectionData) Convert (target xgbsel.Target) (io.ReadSeekCloser, bool) { mimeStr, _ := target.ToMime() ty, subty, _ := strings.Cut(string(mimeStr), "/") mime := data.M(ty, subty) stream, ok := this.data[mime] stream.Seek(0, io.SeekStart) return stream, ok } func (this selectionData) Supported () (targets []xgbsel.Target) { for mime := range this.data { targets = append(targets, xgbsel.MimeToTargets(mime.String())...) } return targets }