[−][src]Struct dwfv::signaldb::AsyncSignalDB
Asynchronous Signal DB
Fields
sync_db: Arc<SignalDB>
Synchronous Signal Database
Implementations
impl AsyncSignalDB
[src]
pub fn new() -> Self
[src]
Create a new AsyncSignalDB
.
Example
use dwfv::signaldb::AsyncSignalDB; let db = AsyncSignalDB::new();
pub fn parse_vcd<I: BufRead>(&mut self, input: I) where
I: Send,
I: 'static,
[src]
I: Send,
I: 'static,
Populate the SignalDB
using a Value Change Dump (VCD) file in a separate thread.
Example
use dwfv::signaldb::AsyncSignalDB; let vcd = std::io::Cursor::new(" $scope module logic $end $var wire 1 # foo $end $upscope $end $enddefinitions $end $dumpvars b1 # $end "); let mut db = AsyncSignalDB::new(); db.parse_vcd(vcd); db.sync_db.wait_until_initialized();
pub fn search(&mut self, expr: &str)
[src]
Search in the SignalDB
in a separate thread.
Example
use dwfv::signaldb::{AsyncSignalDB, Scale, Timestamp}; let vcd = std::io::Cursor::new(" $scope module logic $end $var wire 1 # foo $end $upscope $end $enddefinitions $end $dumpvars b1 # $end #42 b0 # "); let mut db = AsyncSignalDB::new(); // Synchronous parsing of the VCD db.sync_db.parse_vcd(vcd); // Search expression let expr = "$# <- 0"; // Asynchronous search db.search(expr); // Wait for the search process to find something loop { if let Some(timestamp) = db.sync_db.get_first_finding(expr).unwrap_or(None) { assert_eq!(timestamp, Timestamp::new(42, Scale::Picosecond)); break } }
Trait Implementations
impl Default for AsyncSignalDB
[src]
Auto Trait Implementations
impl !RefUnwindSafe for AsyncSignalDB
impl Send for AsyncSignalDB
impl Sync for AsyncSignalDB
impl Unpin for AsyncSignalDB
impl !UnwindSafe for AsyncSignalDB
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,