#![cfg_attr(not(feature = "std"), no_std)]
#![deny(
missing_docs,
missing_debug_implementations,
trivial_casts,
trivial_numeric_casts,
unsafe_code,
unstable_features,
unused_import_braces,
unused_qualifications
)]
#[allow(unused_extern_crates)]
extern crate alloc;
use core::future::Future;
pub mod blueprint_metadata;
pub mod client;
pub mod config;
#[allow(missing_docs)]
pub mod contracts;
pub mod error;
#[allow(missing_docs)]
pub mod services;
pub use blueprint_metadata::{
ConfidentialityPolicy, ExecutionProfile, ExecutionProfileError, GpuPolicy, GpuRequirements,
extract_job_profiles_blob, inject_execution_profile, resolve_confidentiality_policy,
resolve_execution_profile, resolve_execution_profile_from_profiling_data,
resolve_gpu_requirements,
};
pub use client::{
AggregationConfig, AssetInfo, AssetKind, BlueprintSelectionMode, DelegationInfo,
DelegationMode, DelegationRecord, DepositInfo, EcdsaPublicKey, JobSubmissionResult, LockInfo,
LockMultiplier, OperatorMetadata, OperatorStatusSnapshot, PendingUnstake, PendingWithdrawal,
RestakingMetadata, RestakingStatus, TangleClient, TangleEvent, ThresholdType,
TransactionResult,
};
pub use config::{TangleClientConfig, TangleSettings};
pub use contracts::{
IBlueprintServiceManager, IMultiAssetDelegation, IOperatorStatusRegistry, ITangle,
};
pub use error::{Error, Result};
pub use services::{
BlueprintConfig, BlueprintInfo, MembershipModel, OperatorSecurityCommitment, PricingModel,
ServiceInfo, ServiceRequestInfo, ServiceRequestParams, ServiceStatus,
};
pub trait EventsClient<E> {
fn next_event(&self) -> impl Future<Output = Option<E>> + Send;
fn latest_event(&self) -> impl Future<Output = Option<E>> + Send;
}
impl EventsClient<TangleEvent> for TangleClient {
async fn next_event(&self) -> Option<TangleEvent> {
self.next_event().await
}
async fn latest_event(&self) -> Option<TangleEvent> {
self.latest_event().await
}
}