Expand description
Safe, idiomatic Rust bindings (twin API) for the National Instruments TestStand™ COM API.
The wrapper surface maps one-to-one onto the TestStand™ object model: type names, the object hierarchy, method names, and parameter order follow the COM API so that anyone who knows TestStand™ can predict the Rust call.
All COM interop (and all unsafe) lives in the rs-teststand-sys crate;
this crate forbids unsafe entirely.
use rs_teststand::Engine;
let engine = Engine::new()?;
println!("major version: {}", engine.major_version()?);Re-exports§
pub use adapters::AdapterKeyName;pub use engine::Engine;pub use enums::ExecRunState;pub use enums::ExecTermState;pub use enums::OpenWorkspaceFileOptions;pub use enums::PropValType;pub use enums::PropertyValueTypeFlags;pub use enums::SaveWorkspaceFileOptions;pub use enums::SearchDirectoryType;pub use enums::StepGroup;pub use error::Error;pub use execution::Execution;pub use execution::ResultList;pub use execution::ResultValue;pub use execution::SequenceContext;pub use execution::StepResult;pub use execution::Thread;pub use execution::ThreadTerminationOption;pub use expression::ArithmeticOperator;pub use expression::Arity;pub use expression::ArrayFunction;pub use expression::AssignmentOperator;pub use expression::BitwiseOperator;pub use expression::ColorConstant;pub use expression::ComparisonOperator;pub use expression::LogicalOperator;pub use expression::NumericFunction;pub use expression::Operator;pub use expression::OperatorClass;pub use expression::OtherConstant;pub use expression::OtherFunction;pub use expression::OtherOperator;pub use expression::PropertyFunction;pub use expression::StringFunction;pub use expression::SwitchingFunction;pub use expression::TimeFunction;pub use license::AcquireLicenseOptions;pub use license::ApplicationLicense;pub use license::HeldLicense;pub use license::LicenseType;pub use messaging::UIMessage;pub use messaging::UIMessageCode;pub use messaging::pump_thread_messages;pub use property::ArrayDimensions;pub use property::GetTemplatesFileOptions;pub use property::PropertyObject;pub use property::PropertyObjectFile;pub use property::PropertyObjectType;pub use property::PropertyOptions;pub use property::PropertyRepresentation;pub use sequence::BreakpointScope;pub use sequence::ConflictHandler;pub use sequence::GetSeqFileOptions;pub use sequence::ResultRecordingOption;pub use sequence::RunMode;pub use sequence::Sequence;pub use sequence::SequenceFile;pub use sequence::Step;pub use station::DebugOptions;pub use station::ExecutionMask;pub use station::RunTimeErrorOption;pub use station::SearchDirectories;pub use station::SearchDirectory;pub use station::StationOptions;pub use types::TypeCategory;pub use types::TypeUsageList;pub use users::User;pub use users::UserPrivilege;pub use users::UsersFile;pub use watchdog::DialogPolicy;pub use watchdog::Watchdog;pub use watchdog::dismiss_blocking_dialog;pub use watchdog::find_blocking_dialog;pub use watchdog::surface_blocking_dialog;pub use workspace::WorkspaceFile;pub use workspace::WorkspaceObject;
Modules§
- adapters
- Code-module adapters, how a step reaches the code it calls.
- engine
- The
Engine, root of the object model and factory for everything else. - enums
- Type-safe Rust enums for TestStand™ options, types, and flags.
- error
- The error type surfaced by every fallible wrapper call.
- execution
- Running sequences.
- expression
- The engine’s expression language.
- license
- Licensing: what the engine is running on, and how to ask for it without a dialog.
- messaging
- Messages the engine posts to its host.
- property
PropertyObjectdomain wrappers and options.- sequence
- Sequence-file domain wrappers.
- station
- Station options and search directory management wrappers.
- types
- Registering and evolving custom data types.
- users
- User accounts, groups and privileges.
- watchdog
- Guard for engine calls that can block on a modal dialog.
- workspace
- TestStand workspace domain wrappers.
Structs§
- Dialog
Info - What a blocking dialog was showing.
- Dismissed
- What happened to a dialog that was dismissed.
- Raised
- What raising a window actually achieved.