Prevent other packages from implementing Line

This commit is contained in:
adnano 2020-10-13 20:33:38 -04:00
parent 5f4b225f0d
commit e9db805160

43
text.go
View File

@ -10,6 +10,7 @@ import (
// Line represents a line of a Gemini text response. // Line represents a line of a Gemini text response.
type Line interface { type Line interface {
String() string String() string
line() // private function to prevent other packages from implementing Line
} }
// A link line. // A link line.
@ -17,14 +18,30 @@ type LineLink struct {
URL string URL string
Name string Name string
} }
type LinePreformattingToggle string // A preformatting toggle line.
type LinePreformattedText string // A preformatted text line. // A preformatting toggle line.
type LineHeading1 string // A first-level heading line. type LinePreformattingToggle string
type LineHeading2 string // A second-level heading line.
type LineHeading3 string // A third-level heading line. // A preformatted text line.
type LineListItem string // An unordered list item line. type LinePreformattedText string
type LineQuote string // A quote line.
type LineText string // A text line. // A first-level heading line.
type LineHeading1 string
// A second-level heading line.
type LineHeading2 string
// A third-level heading line.
type LineHeading3 string
// An unordered list item line.
type LineListItem string
// A quote line.
type LineQuote string
// A text line.
type LineText string
func (l LineLink) String() string { func (l LineLink) String() string {
if l.Name != "" { if l.Name != "" {
@ -57,6 +74,16 @@ func (l LineText) String() string {
return string(l) return string(l)
} }
func (l LineLink) line() {}
func (l LinePreformattingToggle) line() {}
func (l LinePreformattedText) line() {}
func (l LineHeading1) line() {}
func (l LineHeading2) line() {}
func (l LineHeading3) line() {}
func (l LineListItem) line() {}
func (l LineQuote) line() {}
func (l LineText) line() {}
// Text represents a Gemini text response. // Text represents a Gemini text response.
type Text []Line type Text []Line