list

package module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 18, 2023 License: MIT Imports: 1 Imported by: 0

README

go-generics-list

go-generics-list is a thin wrapper around container/list using Generics

package main

import (
    "fmt"

    "github.com/hymkor/go-generics-list"
)

func main() {
    L := list.New[rune]()

    for _, c := range "ABCDEFG" {
        L.PushBack(c)
    }

    fmt.Print("Ascend:")
    for p := L.Front(); p.IsSome(); p = p.Next() {
        // Use IsSome() or IsNone() because p can not be nil.
        fmt.Printf(" '%c'", p.Value())
    }
    fmt.Println()

    fmt.Print("Descend:")
    for p := L.Back(); p.IsSome(); p = p.Prev() {
        fmt.Printf(" '%c'", p.Value())
    }
    fmt.Println()
}
Ascend: 'A' 'B' 'C' 'D' 'E' 'F' 'G'
Descend: 'G' 'F' 'E' 'D' 'C' 'B' 'A'

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Element

type Element[T any] struct {
	// contains filtered or unexported fields
}

func (Element[T]) IsNone

func (e Element[T]) IsNone() bool

func (Element[T]) IsSome

func (e Element[T]) IsSome() bool

func (Element[T]) Next

func (e Element[T]) Next() Element[T]

func (Element[T]) Prev

func (e Element[T]) Prev() Element[T]

func (Element[T]) Value

func (e Element[T]) Value() T

type List

type List[T any] struct {
	// contains filtered or unexported fields
}

func New

func New[T any]() List[T]

func (List[T]) Back

func (l List[T]) Back() Element[T]

func (List[T]) Front

func (l List[T]) Front() Element[T]

func (List[T]) Init

func (l List[T]) Init() List[T]

func (List[T]) InsertAfter

func (l List[T]) InsertAfter(v T, mark Element[T]) Element[T]

func (List[T]) InsertBefore

func (l List[T]) InsertBefore(v T, mark Element[T]) Element[T]

func (List[T]) Len

func (l List[T]) Len() int

func (List[T]) MoveAfter

func (l List[T]) MoveAfter(e, mark Element[T])

func (List[T]) MoveBefore

func (l List[T]) MoveBefore(e, mark Element[T])

func (List[T]) MoveToBack

func (l List[T]) MoveToBack(e Element[T])

func (List[T]) MoveToFront

func (l List[T]) MoveToFront(e Element[T])

func (List[T]) PushBack

func (l List[T]) PushBack(v T) Element[T]

func (List[T]) PushBackList

func (l List[T]) PushBackList(other List[T])

func (List[T]) PushFront

func (l List[T]) PushFront(v T) Element[T]

func (List[T]) PushFrontList

func (l List[T]) PushFrontList(other List[T])

func (List[T]) Remove

func (l List[T]) Remove(e Element[T]) T

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL