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.
49 lines
1006 B
Go
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
|
|
}
|
|
}
|