func newDataWriter(w io.Writer) *internalDataWriter {
	writer := internalDataWriter{
		wrapped:w,
	}

	return &writer
}
func newDataWriter(w io.Writer) *internalDataWriter {
	writer := internalDataWriter{
		wrapped:w,
	}

	return &writer
}
func newDataWriter ( w io . Writer ) * internalDataWriter { writer := internalDataWriter { wrapped : w , } return & writer }
// newDataWriter creates a new internalDataWriter writing to 'w'.
//
// 'w' receives what is written to the *internalDataWriter but escaped according to
// the TELNET (and TELNETS) protocol.
//
// I.e., byte 255 (= IAC) gets encoded as 255, 255.
//
// For example, if the following it written to the *internalDataWriter's Write method:
//
//	[]byte{1, 55, 2, 155, 3, 255, 4, 40, 255, 30, 20}
//
// ... then (conceptually) the following is written to 'w's Write method:
//
//	[]byte{1, 55, 2, 155, 3, 255, 255, 4, 40, 255, 255, 30, 20}
//
// (Notice that each "255" in the original byte array became 2 "255"s in a row.)
//
// *internalDataWriter takes care of all this for you, so you do not have to do it.
newDataWriter creates a new internalDataWriter writing to w . w receives what is written to the * internalDataWriter but escaped according to the TELNET ( and TELNETS ) protocol . I . e . byte 255 ( = IAC ) gets encoded as 255 255 . For example if the following it written to the * internalDataWriter s Write method : [] byte { 1 55 2 155 3 255 4 40 255 30 20 } ... then ( conceptually ) the following is written to w s Write method : [] byte { 1 55 2 155 3 255 255 4 40 255 255 30 20 } ( Notice that each 255 in the original byte array became 2 255 s in a row . ) * internalDataWriter takes care of all this for you so you do not have to do it .