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