Skip to main content

StringStore

Struct StringStore 

Source
pub struct StringStore {
    pub entities: EntityTable,
    /* private fields */
}
Expand description

Storage for PostScript string byte data.

Fields§

§entities: EntityTable

Implementations§

Source§

impl StringStore

Source

pub fn new() -> Self

Source

pub fn allocate(&mut self, len: usize) -> EntityId

Allocate len zero-filled bytes, returning an EntityId.

Source

pub fn allocate_from(&mut self, bytes: &[u8]) -> EntityId

Allocate and copy bytes into the store.

Source

pub fn allocate_from_with( &mut self, bytes: &[u8], save_level: u16, global: bool, created_after_save: u32, ) -> EntityId

Allocate and copy bytes with a specific save level and global flag.

Source

pub fn allocate_with( &mut self, len: usize, save_level: u16, global: bool, created_after_save: u32, ) -> EntityId

Allocate with a specific save level and global flag.

Source

pub fn get(&self, entity: EntityId, start: u32, len: u32) -> &[u8]

Get a slice of the string data via entity table indirection. start is the byte offset from the entity’s base; len is the number of bytes.

Source

pub fn get_mut(&mut self, entity: EntityId, start: u32, len: u32) -> &mut [u8]

Get a mutable slice of the string data via entity table indirection. start is the byte offset from the entity’s base; len is the number of bytes.

Source

pub fn put_byte(&mut self, entity: EntityId, offset: u32, byte: u8)

Set a single byte.

Source

pub fn get_byte(&self, entity: EntityId, offset: u32) -> u8

Get a single byte.

Source

pub fn cow_copy(&mut self, entity: EntityId) -> EntityId

Copy entity data to a new region (for COW). Returns the new EntityId pointing to the copy. The original entity’s offset is updated to point at the copy, so the original EntityId now sees the new data.

Source

pub fn swap_offsets(&mut self, a: EntityId, b: EntityId)

Swap offsets between two entities (used by restore).

Source

pub fn data(&self) -> &[u8]

Access to the backing data (for advanced operations).

Trait Implementations§

Source§

impl Default for StringStore

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.