twink/vendor/sourcery.dny.nu/pana/icon.go

58 lines
1.1 KiB
Go
Raw Normal View History

2025-12-05 12:20:05 +01:00
package pana
import (
"encoding/json"
ld "sourcery.dny.nu/longdistance"
as "sourcery.dny.nu/pana/vocab/w3/activitystreams"
)
// Icon is a more constrained version of [Image] used with [as.Icon].
type Icon Image
// NewIcon initialises a new Icon.
func NewIcon() *Icon {
return &Icon{
Properties: make(ld.Properties),
Type: []string{as.TypeImage},
}
}
// Build finalises the Icon.
func (i *Icon) Build() Icon {
return *i
}
// See [Object.GetType].
func (i *Icon) GetType() string {
return (*Image)(i).GetType()
}
// See [Object.SetType].
func (i *Icon) SetType() *Icon {
(*Image)(i).SetType(as.TypeImage)
return i
}
// GetMediaType returns the value in [as.MediaType].
func (i *Icon) GetMediaType() json.RawMessage {
return (*Image)(i).GetMediaType()
}
// SetMediaType sets the value in [as.MediaType].
func (i *Icon) SetMediaType(v json.RawMessage) *Icon {
(*Image)(i).SetMediaType(v)
return i
}
// See [Object.GetURL].
func (i *Icon) GetURL() string {
return (*Image)(i).GetURL()
}
// See [Object.SetURL].
func (i *Icon) SetURL(url string) *Icon {
(*Image)(i).SetURL(url)
return i
}