Skip to main content

r402_server/
lib.rs

1//! Resource server, `paymentFlow`, and `authorization` `SettlementMode` scheduler.
2
3#![cfg_attr(docsrs, feature(doc_cfg))]
4#![cfg_attr(
5    test,
6    allow(
7        clippy::indexing_slicing,
8        clippy::panic,
9        reason = "unit tests panic on assertion failure"
10    )
11)]
12
13mod cancel;
14mod hooks;
15mod matching;
16mod payment_flow;
17mod required;
18mod resource;
19mod scheme;
20mod settle;
21mod settlement;
22mod verify;
23
24pub use cancel::{CancellationGuard, build_failure_path_settlement_response};
25pub use hooks::{
26    AfterVerifyDecision, BeforeOpDecision, CancelReason, DynResourceServerHooks, HookPolicyError,
27    PaymentHookContext, RESERVED_PAYMENT_FLOW_EXTRA_KEYS, ResourceServerHooks, SettleContext,
28    SettleResponseCoreSnapshot, SettleResultContext, SkipHandlerDirective,
29    VerifiedPaymentCanceledContext, VerifyResultContext, WirePaymentPayload,
30    assert_accepts_additive_extra_after_scheme_enrich,
31    assert_accepts_allowlisted_after_extension_enrich, assert_additive_payload_enrichment,
32    assert_additive_settlement_extra, assert_settle_response_core_unchanged,
33    is_vacant_string_field, merge_additive_settlement_extra, snapshot_payment_requirements_list,
34    snapshot_settle_response_core,
35};
36pub use payment_flow::{
37    PAYMENT_FLOWS, PaymentFlowConfig, PaymentFlowError, PaymentFlowName, PaymentFlowPhases,
38    PaymentFlowScheme, ResolvedPaymentFlow, SDK_DEFAULT_ASSET_TRANSFER_METHOD, SettlePhase,
39    apply_payment_flow_wire_extra, extra_payment_flow, is_authorization_payment_flow,
40    is_recognized_payment_flow, resolve_payment_flow, resolve_payment_flow_phases,
41};
42pub use required::PaymentRequiredBuildContext;
43pub use resource::{ResourceServer, validate_accepts_against_supported};
44pub use scheme::{
45    DynSchemeNetworkServer, FacilitatorSupportError, SchemeNetworkServer,
46    SchemePaymentRequiredContext,
47};
48pub use settle::CompletedSettlement;
49pub use settlement::{
50    AfterHandler, BackgroundSettlementTracker, IncompatibleSettlementMode, ScheduledSettlement,
51    SequentialFinish, SettlementMode, SettlementSchedule, finish, run, schedule,
52};
53pub use verify::VerifyPaymentOutcome;