github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/crypto/cipher/io.go (about) 1 // Copyright 2010 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package cipher 6 7 import "github.com/shogo82148/std/io" 8 9 // StreamReaderは [Stream] を [io.Reader] にラップします。それは各データスライスを通過する際にXORKeyStreamを呼び出して処理します。 10 type StreamReader struct { 11 S Stream 12 R io.Reader 13 } 14 15 func (r StreamReader) Read(dst []byte) (n int, err error) 16 17 // StreamWriterは [Stream] をio.Writerにラップします。それはXORKeyStreamを呼び出して 18 // 通過するデータの各スライスを処理します。もし [StreamWriter.Write] 呼び出しがshortを返す場合、 19 // StreamWriterは同期が取れておらず、破棄する必要があります。 20 // StreamWriterには内部のバッファリングはなく、データを書き込むために [StreamWriter.Close] を呼び出す必要はありません。 21 type StreamWriter struct { 22 S Stream 23 W io.Writer 24 Err error 25 } 26 27 func (w StreamWriter) Write(src []byte) (n int, err error) 28 29 // Closeは基礎となるWriterを閉じ、そのCloseの返り値を返します。Writerがio.Closerでもある場合は、それを返します。そうでなければnilを返します。 30 func (w StreamWriter) Close() error