github.com/ammario/temp/example

Temporary structs and maps with expiring elements in Golang


License
MIT
Install
go get github.com/ammario/temp/example

Documentation

Temp

Temporary structs and maps with expiring elements in Golang

Table of Contents

Install

go get gopkg.in/ammario/temp.v1

Basic Usage

Temporary struct

type session struct {
    ID string
    temp.T
}

func main() {
    sess := session{}
    temp.ExpireAfter(&sess, time.Second)
    fmt.Printf("Session expired: %v\n", temp.Expired(&sess)) // false
    time.Sleep(time.Second)
    fmt.Printf("Session expired: %v\n", temp.Expired(&sess)) // true
}

Expiring map

m := map[string]*session{
    "123": &session{
        ID: "123",
        temp.T: temp.T{
            expires: time.Now().Add(time.Second),
        },
    },
    "124": &session{
        ID: "124",
        temp.T: temp.T{
            expires: time.Now().Add(time.Second),
        },
    },
    "125": &session{
        ID: "125",
        temp.T: temp.T{
            expires: time.Now().Add(time.Second),
        },
    },
}
go temp.Clean(m, time.Millisecond*50, 0) //Clean blocks forever
time.Sleep(time.Second * 2)
//Map should be empty here