Skip to content

Replace payload string to unsafe.Pointer - #1

Open
Bienne wants to merge 2 commits into
thekvs:masterfrom
Bienne:master
Open

Replace payload string to unsafe.Pointer#1
Bienne wants to merge 2 commits into
thekvs:masterfrom
Bienne:master

Conversation

@Bienne

@Bienne Bienne commented Nov 12, 2015

Copy link
Copy Markdown
For example:
package main

import (
    "fmt"
    "github.com/thekvs/go-net-radix"
    "log"
    "unsafe"
)

type RateLimit struct {
    rate   int
    perSec int
}

func main() {
    rateLimits := make([]*RateLimit, 0, 0)

    rtree, err := netradix.NewNetRadixTree()
    if err != nil {
        panic(err)
    }

    rateLimit := &RateLimit{rate: 1000, perSec: 60}
    rateLimits = append(rateLimits, rateLimit)
    if err = rtree.Add("217.72.192.0/20", unsafe.Pointer(rateLimit)); err != nil {
        log.Fatal(err)
    }
    found, ptr, err := rtree.SearchBest("217.72.192.1")
    if err != nil {
        log.Fatal(err)
    }
    if found {
        rateLimit := (*RateLimit)(ptr)
        fmt.Printf("found: rate = %d, perSec = %d\n", rateLimit.rate, rateLimit.perSec)
    }

}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant