postscript/compact1/index/
dictionaries.rs

1use std::io::Cursor;
2
3use crate::compact1::Operations;
4use crate::tape::Read;
5use crate::{Error, Result};
6
7index! {
8    /// A dictionary index.
9    pub Dictionaries
10}
11
12impl Dictionaries {
13    /// Return the operations at a specific position.
14    #[inline]
15    pub fn get(&self, index: usize) -> Result<Operations> {
16        debug_assert!(index < self.len());
17        Cursor::new(&self[index]).take()
18    }
19}
20
21impl TryFrom<&Dictionaries> for Vec<Operations> {
22    type Error = Error;
23
24    fn try_from(dictionatires: &Dictionaries) -> Result<Self> {
25        let mut values = Vec::with_capacity(dictionatires.len());
26        for index in 0..dictionatires.len() {
27            values.push(Dictionaries::get(dictionatires, index)?);
28        }
29        Ok(values)
30    }
31}