#[cfg(feature = "nft")]
pub mod types;
#[cfg(feature = "nft")]
pub mod scanner;
#[cfg(feature = "nft")]
pub mod metadata;
#[cfg(feature = "nft")]
pub mod valuation;
#[cfg(feature = "nft")]
pub mod security;
#[cfg(feature = "nft")]
pub mod cache;
#[cfg(feature = "nft")]
pub mod portfolio;
#[cfg(feature = "nft")]
pub mod batch;
#[cfg(feature = "nft")]
pub mod strategies;
#[cfg(feature = "nft")]
pub mod errors;
#[cfg(feature = "nft")]
pub use types::*;
#[cfg(feature = "nft")]
pub use scanner::NftScanner;
#[cfg(feature = "nft")]
pub use metadata::MetadataFetcher;
#[cfg(feature = "nft")]
pub use valuation::ValuationEngine;
#[cfg(feature = "nft")]
pub use security::SecurityValidator;
#[cfg(feature = "nft")]
pub use portfolio::PortfolioAnalyzer;
#[cfg(feature = "nft")]
pub use batch::BatchProcessor;
#[cfg(feature = "nft")]
pub use errors::NftError;
#[cfg(not(feature = "nft"))]
pub use errors::NftError;
#[cfg(not(feature = "nft"))]
mod stubs {
use super::errors::NftError;
use crate::core::Result;
pub struct NftScanner;
pub struct MetadataFetcher;
pub struct ValuationEngine;
pub struct SecurityValidator;
pub struct PortfolioAnalyzer;
pub struct BatchProcessor;
impl NftScanner {
pub fn new(_config: ()) -> Result<Self> {
Err(NftError::FeatureDisabled("nft".to_string()).into())
}
}
impl MetadataFetcher {
pub fn new(_config: ()) -> Result<Self> {
Err(NftError::FeatureDisabled("nft".to_string()).into())
}
}
impl ValuationEngine {
pub fn new(_config: ()) -> Result<Self> {
Err(NftError::FeatureDisabled("nft".to_string()).into())
}
}
impl SecurityValidator {
pub fn new(_config: ()) -> Result<Self> {
Err(NftError::FeatureDisabled("nft".to_string()).into())
}
}
impl PortfolioAnalyzer {
pub fn new(_config: ()) -> Result<Self> {
Err(NftError::FeatureDisabled("nft".to_string()).into())
}
}
impl BatchProcessor {
pub fn new(_config: ()) -> Result<Self> {
Err(NftError::FeatureDisabled("nft".to_string()).into())
}
}
}
#[cfg(not(feature = "nft"))]
pub use stubs::*;