code: func (s *Spinner) Start() {
  	if s.active {
  		return
  	}
  	s.active = true
  
  	go func() {
  		for {
  			for i := 0; i < len(s.chars); i++ {
  				select {
  				case <-s.stopChan:
  					return
  				default:
  					s.erase()
  
  					out := fmt.Sprintf("%s %s", s.message, s.chars[i])
  					if _, err := fmt.Fprint(s.writer, out); err != nil {
  						fmt.Printf("failed to update progress, error: %s\n", err)
  					}
  					s.lastOutput = out
  
  					time.Sleep(s.delay)
  				}
  			}
  		}
  	}()
  }
docs: // Start ...