1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use crate::AddressType;

/// Points to a byte (in a [`MemoryRegion`](crate::memory_region::MemoryRegion)).
#[derive(PartialEq, Eq)]
#[derive(Debug)]
pub struct AddressVector<D: Clone> {
    address: AddressType,
    description: D,
}

impl<D: Clone>  AddressVector<D> {

    pub(crate) fn new(address: AddressType, description: D) -> Self {
        Self {
            address,
            description
        }
    }

    /// Address pointed to by the `AddressVector`.
    pub fn address(&self) -> AddressType {
        self.address
    }

    /// Description of the address pointed to by the `AddressVector`.
    pub fn description(&self) -> D {
        self.description.clone()
    }
}