dyn_list 0.1.0

A linked list that can hold dynamically sized values in its nodes.
Documentation
  • Coverage
  • 88.46%
    46 out of 52 items documented7 out of 38 items with examples
  • Size
  • Source code size: 119.16 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 8.03 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 11s Average build duration of successful builds.
  • all releases: 13s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • tomBoddaert/dynode
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • tomBoddaert

DynList

A linked list that can have dynamically sized types in its nodes.

use core::fmt::Debug;
use dyn_list::DynList;

let mut list = DynList::<dyn Debug>::new();

list.push_back_unsize("Hello, World");
list.push_back_unsize(0);
list.push_back_unsize([1, 2, 3, 4]);

println!("{list:?}"); // ["Hello, World!", 0, [1, 2, 3, 4]]

This crate currently only works on the nightly channel.

How Does it Work?

Each node has a header, containing pointers to the previous and next nodes as well as metadata for the data. This is modelled after ThinBox. For Sized types, this works exactly like a regular linked list.

Features

  • alloc - Adds features that require the alloc crate. This includes operations specific to the Global allocator and sets it as the default allocator in generics.
  • std (requires alloc, default) - Adds features that require the std crate. Currently, this adds nothing, but disabling it enables the no_std attribute.

TODO

This library is still in development and breaking changes may occur.

  • Comment unsafe blocks.
  • Add tests.

License

DynList is dual-licensed under either the Apache License Version 2.0 or MIT license at your option.