// Generated by Lisette bindgen
// Source: crypto/rc4 (Go stdlib)
// Go: 1.25.10
// Lisette: 0.2.1

/// NewCipher creates and returns a new [Cipher]. The key argument should be the
/// RC4 key, at least 1 byte and at most 256 bytes.
pub fn NewCipher(key: Slice<byte>) -> Result<Ref<Cipher>, error>

/// A Cipher is an instance of RC4 using a particular key.
pub type Cipher

pub struct KeySizeError(int)

impl Cipher {
  /// Reset zeros the key data and makes the [Cipher] unusable.
  /// 
  /// Deprecated: Reset can't guarantee that the key will be entirely removed from
  /// the process's memory.
  fn Reset(self: Ref<Cipher>)

  /// XORKeyStream sets dst to the result of XORing src with the key stream.
  /// Dst and src must overlap entirely or not at all.
  fn XORKeyStream(self: Ref<Cipher>, mut dst: Slice<byte>, src: Slice<byte>)
}

impl KeySizeError {
  fn Error(self) -> string
}
