// This file is automatically generated, so please do not edit it.
// @generated by `flutter_rust_bridge`@ 2.12.0.

// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import

import '../frb_generated.dart';
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';

class FrbPqcPreKey {
  final int eccPreKeyId;
  final Uint8List eccPreKey;
  final int kyberPreKeyId;
  final Uint8List kyberPreKey;
  final Uint8List kyberPreKeySignature;

  const FrbPqcPreKey({
    required this.eccPreKeyId,
    required this.eccPreKey,
    required this.kyberPreKeyId,
    required this.kyberPreKey,
    required this.kyberPreKeySignature,
  });

  @override
  int get hashCode =>
      eccPreKeyId.hashCode ^
      eccPreKey.hashCode ^
      kyberPreKeyId.hashCode ^
      kyberPreKey.hashCode ^
      kyberPreKeySignature.hashCode;

  @override
  bool operator ==(Object other) =>
      identical(this, other) ||
      other is FrbPqcPreKey &&
          runtimeType == other.runtimeType &&
          eccPreKeyId == other.eccPreKeyId &&
          eccPreKey == other.eccPreKey &&
          kyberPreKeyId == other.kyberPreKeyId &&
          kyberPreKey == other.kyberPreKey &&
          kyberPreKeySignature == other.kyberPreKeySignature;
}

class FrbPreKeyBundle {
  final int registrationId;
  final int deviceId;
  final int? preKeyId;
  final Uint8List? preKeyPublic;
  final int signedPreKeyId;
  final Uint8List signedPreKeyPublic;
  final Uint8List signedPreKeySignature;
  final int kyberPreKeyId;
  final Uint8List kyberPreKeyPublic;
  final Uint8List kyberPreKeySignature;
  final Uint8List identityKey;

  const FrbPreKeyBundle({
    required this.registrationId,
    required this.deviceId,
    this.preKeyId,
    this.preKeyPublic,
    required this.signedPreKeyId,
    required this.signedPreKeyPublic,
    required this.signedPreKeySignature,
    required this.kyberPreKeyId,
    required this.kyberPreKeyPublic,
    required this.kyberPreKeySignature,
    required this.identityKey,
  });

  @override
  int get hashCode =>
      registrationId.hashCode ^
      deviceId.hashCode ^
      preKeyId.hashCode ^
      preKeyPublic.hashCode ^
      signedPreKeyId.hashCode ^
      signedPreKeyPublic.hashCode ^
      signedPreKeySignature.hashCode ^
      kyberPreKeyId.hashCode ^
      kyberPreKeyPublic.hashCode ^
      kyberPreKeySignature.hashCode ^
      identityKey.hashCode;

  @override
  bool operator ==(Object other) =>
      identical(this, other) ||
      other is FrbPreKeyBundle &&
          runtimeType == other.runtimeType &&
          registrationId == other.registrationId &&
          deviceId == other.deviceId &&
          preKeyId == other.preKeyId &&
          preKeyPublic == other.preKeyPublic &&
          signedPreKeyId == other.signedPreKeyId &&
          signedPreKeyPublic == other.signedPreKeyPublic &&
          signedPreKeySignature == other.signedPreKeySignature &&
          kyberPreKeyId == other.kyberPreKeyId &&
          kyberPreKeyPublic == other.kyberPreKeyPublic &&
          kyberPreKeySignature == other.kyberPreKeySignature &&
          identityKey == other.identityKey;
}
