Skip to main content

storekit/
lib.rs

1#![doc = include_str!("../README.md")]
2#![cfg_attr(docsrs, feature(doc_cfg))]
3#![allow(
4    clippy::missing_errors_doc,
5    clippy::module_name_repetitions,
6    clippy::must_use_candidate
7)]
8
9#[cfg(feature = "async")]
10#[cfg_attr(docsrs, doc(cfg(feature = "async")))]
11pub mod async_api;
12
13/// `StoreKit` advanced-commerce wrappers and related value types.
14pub mod advanced_commerce;
15/// Wrappers for `StoreKit.AppStore` APIs.
16pub mod app_store;
17/// Wrappers for `StoreKit.AppTransaction`.
18pub mod app_transaction;
19/// Typed errors surfaced by the `StoreKit` framework.
20pub mod error;
21/// Wrappers for `StoreKit` external purchase APIs.
22pub mod external_purchase;
23mod ffi;
24/// Wrappers for `StoreKit.Message` and related APIs.
25pub mod message;
26mod private;
27/// Wrappers for `StoreKit.Product` and related value types.
28pub mod product;
29mod product_helpers;
30/// Wrappers for `StoreKit.PurchaseIntent` and its stream APIs.
31pub mod purchase_intent;
32/// Purchase options and results used with `StoreKit.Product.purchase`.
33pub mod purchase_option;
34/// Helpers for `StoreKit` receipts, app transactions, and JWS payloads.
35pub mod receipt_validator;
36/// Helpers for `StoreKit` refund request APIs.
37pub mod refund;
38/// Wrappers for `StoreKit.RenewalInfo` and related enums.
39pub mod renewal_info;
40/// Wrappers for `StoreKit.Product.SubscriptionInfo.RenewalState`.
41pub mod renewal_state;
42/// Helpers that collect bundle context used alongside `StoreKit` APIs.
43pub mod store_context;
44/// Wrappers for `StoreKit.Storefront` and storefront streams.
45pub mod storefront;
46/// Wrappers for `StoreKit.Product.SubscriptionInfo` value types.
47pub mod subscription;
48/// Wrappers for `StoreKit.Product.SubscriptionInfo.Status` and related APIs.
49pub mod subscription_info;
50mod subscription_status_stream;
51/// Wrappers for `StoreKit.Transaction` and transaction streams.
52pub mod transaction;
53/// Wrappers for `StoreKit.VerificationResult` and verification metadata.
54pub mod verification_result;
55/// Opaque `NSWindow` handles used with `StoreKit` APIs that present UI.
56pub mod window;
57
58pub use advanced_commerce::{
59    AdvancedCommerceProduct, AdvancedCommercePurchaseOption, AppStoreMerchandisingKind,
60    AppStoreMerchandisingPresentationResult, RenewalInfoAdvancedCommerceInfo,
61    RenewalInfoAdvancedCommerceItem, RenewalInfoAdvancedCommercePriceIncreaseInfo,
62    RenewalInfoAdvancedCommercePriceIncreaseStatus, TransactionAdvancedCommerceInfo,
63    TransactionAdvancedCommerceItem, TransactionAdvancedCommerceItemDetails,
64    TransactionAdvancedCommerceOffer, TransactionAdvancedCommerceOfferReason,
65    TransactionAdvancedCommerceRefund, TransactionAdvancedCommerceRefundReason,
66    TransactionAdvancedCommerceRefundType,
67};
68pub use app_store::{AppStore, AppStoreEnvironment, AppStorePlatform};
69pub use app_transaction::AppTransaction;
70pub use error::{
71    InvalidRequestError, ProductPurchaseError, ProductPurchaseErrorCode, RefundRequestError,
72    RefundRequestErrorCode, StoreKitApiError, StoreKitApiErrorCode, StoreKitError,
73    StoreKitFrameworkError, TypedStoreKitError, VerificationErrorCode, VerificationFailure,
74};
75pub use external_purchase::{
76    ExternalPurchase, ExternalPurchaseCustomLink, ExternalPurchaseCustomLinkNoticeResult,
77    ExternalPurchaseCustomLinkNoticeType, ExternalPurchaseCustomLinkToken, ExternalPurchaseLink,
78    ExternalPurchaseNoticeResult,
79};
80pub use message::{Message, MessageReason, MessageStream};
81pub use product::{Product, ProductType};
82pub use product_helpers::ProductFormatting;
83pub use purchase_intent::{PurchaseIntent, PurchaseIntentStream};
84pub use purchase_option::{PurchaseOption, PurchaseResult};
85pub use receipt_validator::{AppReceipt, ReceiptValidator};
86pub use refund::{Refund, RefundRequestStatus};
87pub use renewal_info::{ExpirationReason, PriceIncreaseStatus, RenewalInfo};
88pub use renewal_state::RenewalState;
89pub use store_context::StoreContext;
90pub use storefront::{Storefront, StorefrontStream};
91pub use subscription::{
92    SubscriptionOffer, SubscriptionOfferType, SubscriptionPaymentMode, SubscriptionPeriod,
93    SubscriptionPeriodUnit,
94};
95pub use subscription_info::{SubscriptionInfo, SubscriptionStatus};
96pub use subscription_status_stream::{
97    SubscriptionGroupStatusStream, SubscriptionGroupStatuses, SubscriptionStatusStream,
98};
99pub use transaction::{
100    OfferPaymentMode, OfferType, OwnershipType, RevocationReason, Transaction, TransactionData,
101    TransactionOffer, TransactionReason, TransactionStream,
102};
103pub use verification_result::{VerificationMetadata, VerificationResult};
104pub use window::NSWindowHandle;
105
106/// Common imports.
107pub mod prelude {
108    pub use crate::advanced_commerce::{
109        AdvancedCommerceProduct, AdvancedCommercePurchaseOption, AppStoreMerchandisingKind,
110        AppStoreMerchandisingPresentationResult, RenewalInfoAdvancedCommerceInfo,
111        RenewalInfoAdvancedCommerceItem, RenewalInfoAdvancedCommercePriceIncreaseInfo,
112        RenewalInfoAdvancedCommercePriceIncreaseStatus, TransactionAdvancedCommerceInfo,
113        TransactionAdvancedCommerceItem, TransactionAdvancedCommerceItemDetails,
114        TransactionAdvancedCommerceOffer, TransactionAdvancedCommerceOfferReason,
115        TransactionAdvancedCommerceRefund, TransactionAdvancedCommerceRefundReason,
116        TransactionAdvancedCommerceRefundType,
117    };
118    pub use crate::app_store::{AppStore, AppStoreEnvironment, AppStorePlatform};
119    pub use crate::app_transaction::AppTransaction;
120    pub use crate::error::{
121        InvalidRequestError, ProductPurchaseError, ProductPurchaseErrorCode, RefundRequestError,
122        RefundRequestErrorCode, StoreKitApiError, StoreKitApiErrorCode, StoreKitError,
123        StoreKitFrameworkError, TypedStoreKitError, VerificationErrorCode, VerificationFailure,
124    };
125    pub use crate::external_purchase::{
126        ExternalPurchase, ExternalPurchaseCustomLink, ExternalPurchaseCustomLinkNoticeResult,
127        ExternalPurchaseCustomLinkNoticeType, ExternalPurchaseCustomLinkToken,
128        ExternalPurchaseLink, ExternalPurchaseNoticeResult,
129    };
130    pub use crate::message::{Message, MessageReason, MessageStream};
131    pub use crate::product::{Product, ProductType};
132    pub use crate::product_helpers::ProductFormatting;
133    pub use crate::purchase_intent::{PurchaseIntent, PurchaseIntentStream};
134    pub use crate::purchase_option::{PurchaseOption, PurchaseResult};
135    pub use crate::receipt_validator::{AppReceipt, ReceiptValidator};
136    pub use crate::refund::{Refund, RefundRequestStatus};
137    pub use crate::renewal_info::{ExpirationReason, PriceIncreaseStatus, RenewalInfo};
138    pub use crate::renewal_state::RenewalState;
139    pub use crate::store_context::StoreContext;
140    pub use crate::storefront::{Storefront, StorefrontStream};
141    pub use crate::subscription::{
142        SubscriptionOffer, SubscriptionOfferType, SubscriptionPaymentMode, SubscriptionPeriod,
143        SubscriptionPeriodUnit,
144    };
145    pub use crate::subscription_info::{SubscriptionInfo, SubscriptionStatus};
146    pub use crate::subscription_status_stream::{
147        SubscriptionGroupStatusStream, SubscriptionGroupStatuses, SubscriptionStatusStream,
148    };
149    pub use crate::transaction::{
150        OfferPaymentMode, OfferType, OwnershipType, RevocationReason, Transaction, TransactionData,
151        TransactionOffer, TransactionReason, TransactionStream,
152    };
153    pub use crate::verification_result::{VerificationMetadata, VerificationResult};
154    pub use crate::window::NSWindowHandle;
155}