class Infobar

def call(

def call(
  total:,
  current:   0,
  label:     cc.infobar?&.label || 'Infobar',
  message:   cc.infobar?&.message?&.to_h,
  show:      cc.infobar?&.show?,
  style:     cc.infobar?&.style?&.to_h&.symbolize_keys_recursive,
  as_styles: cc.infobar?&.as_styles?&.to_h&.symbolize_keys_recursive,
  frequency: cc.infobar?&.frequency?,
  update:    false,
  input:     $stdin,
  output:    $stdout
)
  self.label = label
  counter.reset(total: total, current: current)
  display.reset clear: false
  @message = convert_to_message(
    message.full? || '%l %c/%t in %te, ETA %e @%E %s'
  )
  show.nil? or self.show = show
  frequency.nil? or display.frequency = frequency
  style.nil? or self.style = style
  self.as_styles = as_styles
  self.input     = input
  self.output    = output
  update and update(message: @message, force: true)
  self
end