mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-05 15:18:49 +00:00
Create doc.odin
Create a doc file with a brief of the package and an example program (copied from a discord message by laytan)
This commit is contained in:
@@ -0,0 +1,39 @@
|
|||||||
|
/*
|
||||||
|
Package list implements an intrusive doubly-linked list.
|
||||||
|
|
||||||
|
An intrusive container requires a `Node` to be embedded in your own structure, like this:
|
||||||
|
|
||||||
|
My_String :: struct {
|
||||||
|
node: list.Node,
|
||||||
|
value: string,
|
||||||
|
}
|
||||||
|
|
||||||
|
Here is a full example:
|
||||||
|
|
||||||
|
package test
|
||||||
|
|
||||||
|
import "core:fmt"
|
||||||
|
import "core:container/intrusive/list"
|
||||||
|
|
||||||
|
main :: proc() {
|
||||||
|
l: list.List
|
||||||
|
|
||||||
|
one := My_String{value="Hello"}
|
||||||
|
two := My_String{value="World"}
|
||||||
|
|
||||||
|
list.push_back(&l, &one.node)
|
||||||
|
list.push_back(&l, &two.node)
|
||||||
|
|
||||||
|
iter := list.iterator_head(l, My_String, "node")
|
||||||
|
for s in list.iterate_next(&iter) {
|
||||||
|
fmt.println(s.value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
My_String :: struct {
|
||||||
|
node: list.Node,
|
||||||
|
value: string,
|
||||||
|
}
|
||||||
|
|
||||||
|
*/
|
||||||
|
package container_intrusive_list
|
||||||
Reference in New Issue
Block a user