```
pub trait ArrivalTimeQuery<N: NetlistBase> {
type Time: Copy + Num;
fn actual_arrival_time(&self, node: &TerminalId<N>) -> Self::Time;
fn required_arrival_time(&self, node: &TerminalId<N>) -> Self::Time;
fn slack(&self, node: &TerminalId<N>) -> Self::Time { ... }
}
```

## Expand description

Query arrival times. This trait is typically implemented by the result of a static timing analysis step. The type of analysis (early/late) is implicit and not defined by this trait.

## Associated Types

## Required methods

#### fn actual_arrival_time(&self, node: &TerminalId<N>) -> Self::Time

#### fn actual_arrival_time(&self, node: &TerminalId<N>) -> Self::Time

Compute the actual arrival time of a signal at the `node`

.

#### fn required_arrival_time(&self, node: &TerminalId<N>) -> Self::Time

#### fn required_arrival_time(&self, node: &TerminalId<N>) -> Self::Time

Compute the required arrival time of a signal at the `node`

.

## Provided methods

#### fn slack(&self, node: &TerminalId<N>) -> Self::Time

#### fn slack(&self, node: &TerminalId<N>) -> Self::Time

Compute the ‘slack’ at a terminal.
The slack is the difference `required_arrival_time - actual_arrival_time`

.
A negative slack means that the signal arrives later than it should.