Files
threshold/internal/bsr/convert/options.go
T
Timothy Messier 7e094d824f feat(bsr/convert): Remove asciicast minimum window size (#3287)
This removes the minimum on width and height, instead it will just used
the largest width, height seen as the initial size for the asciicast.
This also provides the ability to still set a minimum via options to
convert.ToAsciicast if the caller has a known minimum size. Also note
that in cases where there is no size information, ie if there was no pty
request, this will still pick a default size of 80x24.
2023-06-06 12:26:46 -04:00

49 lines
1006 B
Go

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
package convert
// getOpts - iterate the inbound Options and return a struct
func getOpts(opt ...Option) options {
opts := getDefaultOptions()
for _, o := range opt {
o(&opts)
}
return opts
}
// Option - how Options are passed as arguments
type Option func(*options)
// options = how options are represented
type options struct {
withChannelId string
withMinWidth uint32
withMinHeight uint32
}
func getDefaultOptions() options {
return options{}
}
// WithChannelId provides and option to specify the channelId
func WithChannelId(id string) Option {
return func(o *options) {
o.withChannelId = id
}
}
// WithMinWidth can be used to set a minimum width for playback.
func WithMinWidth(w uint32) Option {
return func(o *options) {
o.withMinWidth = w
}
}
// WithMinHeight can be used to set a minimum height for playback.
func WithMinHeight(h uint32) Option {
return func(o *options) {
o.withMinHeight = h
}
}