code: func SetRawTerminal(fd uintptr) (*State, error) {
  	state, err := MakeRaw(fd)
  	if err != nil {
  		return nil, err
  	}
  
  	// Register an interrupt handler to catch and restore prior state
  	restoreAtInterrupt(fd, state)
  	return state, err
  }
docs: // SetRawTerminal puts the terminal connected to the given file descriptor into
  // raw mode and returns the previous state. On UNIX, this puts both the input
  // and output into raw mode. On Windows, it only puts the input into raw mode.