// Bind allows for binding Go values into the current execution context under // a certain name. Bind returns an error if attempting to bind an invalid value // (check the documentation for NewValue for what is considered to be a "valid" // value). func (c *Context) Bind(name string, val interface{}) error { v, err := NewValue(val) if err != nil { return err } n := C.CString(name) defer C.free(unsafe.Pointer(n)) C.context_bind(c.context, n, v.Ptr()) c.values = append(c.values, v) return nil }
// Bind allows for binding Go values into the current execution context under // a certain name. Bind returns an error if attempting to bind an invalid value // (check the documentation for value.New for what is considered to be a "valid" // value). func (c *Context) Bind(name string, val interface{}) error { v, err := value.New(val) if err != nil { return err } n := C.CString(name) defer C.free(unsafe.Pointer(n)) if _, err = C.context_bind(c.context, n, v.Ptr()); err != nil { v.Destroy() return fmt.Errorf("Binding value '%v' to context failed", val) } c.values[name] = v return nil }