deferred_vector 0.1.2

A deferred vector implementation
Documentation
  • Coverage
  • 100%
    6 out of 6 items documented1 out of 6 items with examples
  • Size
  • Source code size: 8.85 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 322.23 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • afmiguel/deferred_vector
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • afmiguel

Deferred Vector Library

Introduction

The Deferred Vector Library offers DeferredVec, a generic, lazily-initialized vector structure in Rust, ideal for efficient resource management and performance optimization. Developed by Prof. Afonso Miguel at PUCPR.

Features

  • Laziness: Only initializes the vector when explicitly accessed.
  • Flexibility: Compatible with any type T that implements the Clone trait.
  • Custom Initialization: Uses a user-provided function for vector initialization.

Usage

Instantiate DeferredVec with a fetch_function defining the initial state. The vector remains uninitialized (None) until methods like get or len are invoked, triggering initialization.

Examples

Basic usage:

let mut deferred_vector = DeferredVec::new(|| vec![1, 2, 3]);
assert_eq!(deferred_vector.is_deferred(), true);

Fetch de vector data:

assert_eq!(deferred_vector.len(), 3);

Check if the vector is not deferred:

let initialized_vector = deferred_vector.get();
assert_eq!(deferred_vector.is_deferred(), false);

Testing

Includes unit tests focusing on lazy initialization and basic vector operations.

Disclaimer

Provided as-is, without warranty. Test thoroughly before production use.

Author

Prof. Afonso Miguel - PUCPR.

License

MIT License - see the LICENSE file for details.