a8m / a8m/syncmap

Can different custom packages for key and value is possible?

Open
#8 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
256
Forks
17
PR merge metrics
No merged PRs in 30d

Description

Hi @a8m ,

Currently using a basic
```
syncmap -name UserChannelsMap -pkg xmap -o ./types/xmap/user_channels_map.go "map[string]string"
```
will work.

If I want to use a custom type:
```
syncmap -name UserChannelsMap -pkg xmap -o ./types/xmap/user_channels_map.go "map[string]*UserChannelList"
```
I need to make sure `UserChannelList` is in the same package than the one exported for the file (here `xmap`). I could arrange myself to do so, but it brings some complexity.

Last case, I want to use like an "enum" for the keys, in my case it's defined in my own `constant` package, how could I deal with this? From what I understand it's not possible, the `syncmap` would have to manage some add of imports, no?
```
syncmap -name UserChannelsMap -pkg xmap -o ./types/xmap/user_channels_map.go "map[constant.NameID]*UserChannelList"
```

Maybe I missed something 🤔

Thank you,

EDIT: a workaround could be that aside my exported file (having package `xmap`) I could declare type aliases for both the key and the value types, like:
```
import ...

type NameID = constant.NameID
type UserChannelList = entity.UserChannelList
```

EDIT2: in all cases, I should make sure it won't bring circular loop if the XXXMap was needed in one of those packages ^^

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.