Skip to main content

cdk_common/
melt.rs

1//! Melt types
2use cashu::{MeltQuoteBolt11Request, MeltQuoteBolt12Request, MeltQuoteCustomRequest};
3
4/// Melt quote request enum for different types of quotes
5///
6/// This enum represents the different types of melt quote requests
7/// that can be made, either BOLT11, BOLT12, or Custom.
8#[derive(Debug, Clone, PartialEq, Eq)]
9pub enum MeltQuoteRequest {
10    /// Lightning Network BOLT11 invoice request
11    Bolt11(MeltQuoteBolt11Request),
12    /// Lightning Network BOLT12 offer request
13    Bolt12(MeltQuoteBolt12Request),
14    /// Custom payment method request
15    Custom(MeltQuoteCustomRequest),
16}
17
18impl From<MeltQuoteBolt11Request> for MeltQuoteRequest {
19    fn from(request: MeltQuoteBolt11Request) -> Self {
20        MeltQuoteRequest::Bolt11(request)
21    }
22}
23
24impl From<MeltQuoteBolt12Request> for MeltQuoteRequest {
25    fn from(request: MeltQuoteBolt12Request) -> Self {
26        MeltQuoteRequest::Bolt12(request)
27    }
28}
29
30impl From<MeltQuoteCustomRequest> for MeltQuoteRequest {
31    fn from(request: MeltQuoteCustomRequest) -> Self {
32        MeltQuoteRequest::Custom(request)
33    }
34}