stock-trek 0.2.0

Stock Trek time-series analysis
Documentation
use crate::validation::{
    node::RustNode,
    validator::{ValidationError, Validator},
};

pub fn validate(code: &str) -> Result<(), ValidationError> {
    let mut validator = Validator::new();

    validator
        .allow_node(RustNode::AngleBracketedGenericArguments)
        .allow_node(RustNode::Arm)
        .allow_node(RustNode::AssocConst)
        .allow_node(RustNode::AssocType)
        .allow_node(RustNode::BinOp)
        .allow_node(RustNode::Block)
        .allow_node(RustNode::Constraint)
        .allow_node(RustNode::Expr)
        .allow_node(RustNode::ExprArray)
        .allow_node(RustNode::ExprAssign)
        .allow_node(RustNode::ExprBinary)
        .allow_node(RustNode::ExprBlock)
        .allow_node(RustNode::ExprBreak)
        .allow_node(RustNode::ExprCall)
        .allow_node(RustNode::ExprCast)
        .allow_node(RustNode::ExprClosure)
        .allow_node(RustNode::ExprConst)
        .allow_node(RustNode::ExprContinue)
        .allow_node(RustNode::ExprField)
        .allow_node(RustNode::ExprForLoop)
        .allow_node(RustNode::ExprGroup)
        .allow_node(RustNode::ExprIf)
        .allow_node(RustNode::ExprIndex)
        .allow_node(RustNode::ExprInfer)
        .allow_node(RustNode::ExprLet)
        .allow_node(RustNode::ExprLit)
        .allow_node(RustNode::ExprLoop)
        .allow_node(RustNode::ExprMatch)
        .allow_node(RustNode::ExprMethodCall)
        .allow_node(RustNode::ExprParen)
        .allow_node(RustNode::ExprPath)
        .allow_node(RustNode::ExprRange)
        .allow_node(RustNode::ExprReference)
        .allow_node(RustNode::ExprRepeat)
        .allow_node(RustNode::ExprReturn)
        .allow_node(RustNode::ExprStruct)
        .allow_node(RustNode::ExprTuple)
        .allow_node(RustNode::ExprUnary)
        .allow_node(RustNode::ExprWhile)
        .allow_node(RustNode::Field)
        .allow_node(RustNode::FieldMutability)
        .allow_node(RustNode::FieldPat)
        .allow_node(RustNode::FieldValue)
        .allow_node(RustNode::Fields)
        .allow_node(RustNode::FieldsNamed)
        .allow_node(RustNode::FieldsUnnamed)
        .allow_node(RustNode::File)
        .allow_node(RustNode::FnArg)
        .allow_node(RustNode::GenericArgument)
        .allow_node(RustNode::GenericParam)
        .allow_node(RustNode::Generics)
        .allow_node(RustNode::Ident)
        .allow_node(RustNode::ImplItem)
        .allow_node(RustNode::ImplItemConst)
        .allow_node(RustNode::ImplItemFn)
        .allow_node(RustNode::ImplItemType)
        .allow_node(RustNode::Index)
        .allow_node(RustNode::Item)
        .allow_node(RustNode::ItemConst)
        .allow_node(RustNode::ItemEnum)
        .allow_node(RustNode::ItemFn)
        .allow_node(RustNode::ItemImpl)
        .allow_node(RustNode::ItemStruct)
        .allow_node(RustNode::ItemTrait)
        .allow_node(RustNode::ItemTraitAlias)
        .allow_node(RustNode::ItemType)
        .allow_node(RustNode::ItemUnion)
        .allow_node(RustNode::ItemUse)
        .allow_node(RustNode::Label)
        .allow_node(RustNode::Lifetime)
        .allow_node(RustNode::LifetimeParam)
        .allow_node(RustNode::Lit)
        .allow_node(RustNode::LitBool)
        .allow_node(RustNode::LitByte)
        .allow_node(RustNode::LitByteStr)
        .allow_node(RustNode::LitCstr)
        .allow_node(RustNode::LitChar)
        .allow_node(RustNode::LitFloat)
        .allow_node(RustNode::LitInt)
        .allow_node(RustNode::LitStr)
        .allow_node(RustNode::Local)
        .allow_node(RustNode::LocalInit)
        .allow_node(RustNode::Member)
        .allow_node(RustNode::Meta)
        .allow_node(RustNode::MetaList)
        .allow_node(RustNode::MetaNameValue)
        .allow_node(RustNode::ParenthesizedGenericArguments)
        .allow_node(RustNode::Pat)
        .allow_node(RustNode::PatIdent)
        .allow_node(RustNode::PatOr)
        .allow_node(RustNode::PatParen)
        .allow_node(RustNode::PatReference)
        .allow_node(RustNode::PatRest)
        .allow_node(RustNode::PatSlice)
        .allow_node(RustNode::PatStruct)
        .allow_node(RustNode::PatTuple)
        .allow_node(RustNode::PatTupleStruct)
        .allow_node(RustNode::PatType)
        .allow_node(RustNode::PatWild)
        .allow_node(RustNode::Path)
        .allow_node(RustNode::PathArguments)
        .allow_node(RustNode::PathSegment)
        .allow_node(RustNode::PredicateLifetime)
        .allow_node(RustNode::PredicateType)
        .allow_node(RustNode::Qself)
        .allow_node(RustNode::RangeLimits)
        .allow_node(RustNode::Receiver)
        .allow_node(RustNode::ReturnType)
        .allow_node(RustNode::Signature)
        .allow_node(RustNode::Stmt)
        .allow_node(RustNode::TokenStream)
        .allow_node(RustNode::TraitBound)
        .allow_node(RustNode::TraitBoundModifier)
        .allow_node(RustNode::TraitItem)
        .allow_node(RustNode::TraitItemConst)
        .allow_node(RustNode::TraitItemFn)
        .allow_node(RustNode::TraitItemType)
        .allow_node(RustNode::Type)
        .allow_node(RustNode::TypeArray)
        .allow_node(RustNode::TypeGroup)
        .allow_node(RustNode::TypeImplTrait)
        .allow_node(RustNode::TypeInfer)
        .allow_node(RustNode::TypeNever)
        .allow_node(RustNode::TypeParam)
        .allow_node(RustNode::TypeParamBound)
        .allow_node(RustNode::TypeParen)
        .allow_node(RustNode::TypePath)
        .allow_node(RustNode::TypeReference)
        .allow_node(RustNode::TypeSlice)
        .allow_node(RustNode::TypeTraitObject)
        .allow_node(RustNode::TypeTuple)
        .allow_node(RustNode::UnOp)
        .allow_node(RustNode::UseGroup)
        .allow_node(RustNode::UseName)
        .allow_node(RustNode::UsePath)
        .allow_node(RustNode::UseTree)
        .allow_node(RustNode::Variant)
        .allow_node(RustNode::VisRestricted)
        .allow_node(RustNode::Visibility)
        .allow_node(RustNode::WhereClause)
        .allow_node(RustNode::WherePredicate)
        .allow_relative_path_crate()
        .allow_relative_path_self()
        .allow_relative_path_super()
        .allow_relative_path_simple()
        .allow_path_prefix("std::collections::")
        .allow_path_prefix("stock_trek::");

    validator.validate(code)

    // .allow_node(RustNode::Abi)
    // .allow_node(RustNode::AttrStyle)
    // .allow_node(RustNode::Attribute)
    // .allow_node(RustNode::BareFnArg)
    // .allow_node(RustNode::BareVariadic)
    // .allow_node(RustNode::BoundLifetimes)
    // .allow_node(RustNode::CapturedParam)
    // .allow_node(RustNode::ConstParam)
    // .allow_node(RustNode::Data)
    // .allow_node(RustNode::DataEnum)
    // .allow_node(RustNode::DataStruct)
    // .allow_node(RustNode::DataUnion)
    // .allow_node(RustNode::DeriveInput)
    // .allow_node(RustNode::ExprAsync)
    // .allow_node(RustNode::ExprAwait)
    // .allow_node(RustNode::ExprMacro)
    // .allow_node(RustNode::ExprRawAddr)
    // .allow_node(RustNode::ExprTry)
    // .allow_node(RustNode::ExprTryBlock)
    // .allow_node(RustNode::ExprUnsafe)
    // .allow_node(RustNode::ExprYield)
    // .allow_node(RustNode::ForeignItem)
    // .allow_node(RustNode::ForeignItemFn)
    // .allow_node(RustNode::ForeignItemMacro)
    // .allow_node(RustNode::ForeignItemStatic)
    // .allow_node(RustNode::ForeignItemType)
    // .allow_node(RustNode::ImplItemMacro)
    // .allow_node(RustNode::ImplRestriction)
    // .allow_node(RustNode::ItemExternCrate)
    // .allow_node(RustNode::ItemForeignMod)
    // .allow_node(RustNode::ItemMacro)
    // .allow_node(RustNode::ItemMod)
    // .allow_node(RustNode::ItemStatic)
    // .allow_node(RustNode::Macro)
    // .allow_node(RustNode::MacroDelimiter)
    // .allow_node(RustNode::PointerMutability)
    // .allow_node(RustNode::PreciseCapture)
    // .allow_node(RustNode::StaticMutability)
    // .allow_node(RustNode::StmtMacro)
    // .allow_node(RustNode::TraitItemMacro)
    // .allow_node(RustNode::TypeBareFn)
    // .allow_node(RustNode::TypeMacro)
    // .allow_node(RustNode::TypePtr)
    // .allow_node(RustNode::UseGlob)
    // .allow_node(RustNode::UseRename)
    // .allow_node(RustNode::Variadic)
}