qris_gen/
error.rs

1//! Modul untuk error handling dalam library qris-gen
2
3use thiserror::Error;
4
5/// Enum untuk semua jenis error yang mungkin terjadi dalam library qris-gen
6#[derive(Debug, Error)]
7pub enum QrisError {
8  /// Error ketika format QRIS tidak valid atau rusak
9  #[error("Format QRIS tidak valid")]
10  InvalidFormat,
11
12  /// Error ketika tag yang diperlukan tidak ditemukan dalam QRIS
13  ///
14  /// # Parameter
15  /// - Tag ID yang hilang (contoh: "01" untuk POI Method)
16  #[error("Tag yang diperlukan tidak ditemukan: {0}")]
17  MissingTag(&'static str),
18
19  /// Error ketika nominal yang diberikan tidak valid
20  ///
21  /// Nominal harus lebih besar dari 0
22  #[error("Nominal tidak valid (harus lebih dari 0)")]
23  InvalidAmount,
24
25  /// Error dari library qrcode ketika generate QR code gagal
26  #[error("Error saat generate QR code: {0}")]
27  QrCodeError(#[from] qrcode::types::QrError),
28
29  /// Error dari library image ketika processing image gagal
30  #[error("Error saat processing image: {0}")]
31  ImageError(#[from] image::ImageError),
32}