code: func (runner *runner) SaveInto(table Table, buffer *bytes.Buffer) error {
  	runner.mu.Lock()
  	defer runner.mu.Unlock()
  
  	trace := utiltrace.New("iptables save")
  	defer trace.LogIfLong(2 * time.Second)
  
  	// run and return
  	iptablesSaveCmd := iptablesSaveCommand(runner.protocol)
  	args := []string{"-t", string(table)}
  	klog.V(4).Infof("running %s %v", iptablesSaveCmd, args)
  	cmd := runner.exec.Command(iptablesSaveCmd, args...)
  	// Since CombinedOutput() doesn't support redirecting it to a buffer,
  	// we need to workaround it by redirecting stdout and stderr to buffer
  	// and explicitly calling Run() [CombinedOutput() underneath itself
  	// creates a new buffer, redirects stdout and stderr to it and also
  	// calls Run()].
  	cmd.SetStdout(buffer)
  	cmd.SetStderr(buffer)
  	return cmd.Run()
  }
docs: // SaveInto is part of Interface.