jeff-hykin / better-go-syntax

💾 📦 ✅
MIT License
35 stars 6 forks source link

Syntax doesn't handle double pointer syntax #15

Open tristan957 opened 3 years ago

tristan957 commented 3 years ago
func (k *Kvdb) Names() ([]string, error) {
    var namesc C.uint
    var namesv **C.char

    err := C.hse_kvdb_get_names(k.impl, &namesc, &namesv)
    if err != 0 {
        return nil, hseErrToErrno(err)
    }

    names := make([]string, namesc)
    for i, s := range (*[limits.KvsCountMax]*C.char)(unsafe.Pointer(namesv))[:namesc:namesc] {
        names[i] = C.GoString(s)
    }

    C.hse_kvdb_free_names(k.impl, namesv)

    return names, nil
}

image

tristan957 commented 3 years ago

Left most pointer Tm scopes:

image

Right most pointer Tm scopes:

image