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}