From 90f6ec9059362bb5db7964973f38109e6aa12b17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=A6=8C=EA=A6=AB=EA=A6=B6=EA=A6=8F=EA=A7=80=EA=A6=A6?= =?UTF-8?q?=EA=A6=BF=EA=A6=A7=EA=A6=AE=EA=A6=91=EA=A6=A9=EA=A6=AD=EA=A7=80?= Date: Sun, 9 Oct 2022 15:45:41 +0800 Subject: Replace switch & enum with generic selections --- midtrans.h | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) (limited to 'midtrans.h') diff --git a/midtrans.h b/midtrans.h index 181e73c..bd03076 100644 --- a/midtrans.h +++ b/midtrans.h @@ -6,23 +6,6 @@ struct midtrans_transaction { long gross_amount; }; -enum midtrans_payment { - MIDTRANS_CREDITCARD = 0, - MIDTRANS_BANKTRANSFER, - MIDTRANS_BCA_KLIKBCA, - MIDTRANS_BCA_KLIKPAY, - MIDTRANS_BRI_EPAY, - MIDTRANS_CIMB_CLICKS, - MIDTRANS_DANAMON_ONLINE, - MIDTRANS_UOB_EZPAY, - MIDTRANS_QRIS, - MIDTRANS_GOPAY, - MIDTRANS_SHOPEEPAY, - MIDTRANS_CSTORE, - MIDTRANS_AKULAKU, - MIDTRANS_KREDIVO -}; - struct midtrans_banktransfer { char *bank; char *va_number; @@ -30,13 +13,18 @@ struct midtrans_banktransfer { char *permata; }; +#define midtrans_charge(x, y, z) _Generic((x),\ + struct midtrans_banktransfer *:\ + midtrans_charge_banktransfer(x, y, z)\ + ) + #ifdef __cplusplus extern "C" { #endif void midtrans_init(const char *api_key, const char *cainfo); void midtrans_status(const char *order_id); -void midtrans_charge(enum midtrans_payment type, void *payment, +void midtrans_charge_banktransfer(struct midtrans_banktransfer *banktransfer, struct midtrans_transaction *transaction, char *custom_fields[]); void midtrans_cleanup(); -- cgit v1.2.3