package vars

import (
	
)

type callback struct {
	set func(interface{}) error
	get func() interface{}
}

// FromSetGet makes a variable from a set callback and a get callback.
func ( func(interface{}) error,  func() interface{}) Var {
	return &callback{, }
}

func ( *callback) ( interface{}) error {
	return .set()
}

func ( *callback) () interface{} {
	return .get()
}

type roCallback func() interface{}

// FromGet makes a variable from a get callback. The variable is read-only.
func ( func() interface{}) Var {
	return roCallback()
}

func ( roCallback) (interface{}) error {
	return errs.SetReadOnlyVar{}
}

func ( roCallback) () interface{} {
	return ()
}