> For the complete documentation index, see [llms.txt](https://eather-space.gitbook.io/eather/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://eather-space.gitbook.io/eather/development/callable.md).

# Callable

Add function GetPublicFuncs() to make module Callable. This will allow to call you any function of your module in other parts of application or in another module.

```
.
.
.

func (m module) GetPublicFuncs() eather.PublicFuncList {
	list := make(eather.PublicFuncList)

	list["test"] = test

	return list
}

func test(data ...interface{}) (interface{}, error) {
	return []string{"testing public function of module"}, nil
}

.
.
.
```

Now it is possible to call this function from any part of application. It will print the return of test function to terminal.

```
if callable := eather.GetRegistry().Get("Empty").GetCallable(); callable != nil {
    data, _ := callable.GetPublicFuncs().Call("test")
    
    fmt.Println(data)
}
```
