Skip to content

Conversation

@YoungerLee
Copy link
Contributor

  • use generics function to get messagers rather than generate all getter functions
  • upgrade go version to 1.18

@wenchy wenchy added the help wanted Extra attention is needed label Apr 11, 2023
@wenchy
Copy link
Member

wenchy commented Apr 11, 2023

Generics may be not friendly to code auto-completion.

@wenchy
Copy link
Member

wenchy commented Apr 19, 2023

Problem: type parameters in methods

According to the Type parameters proposal, it is not allowed to define type parameters in methods.

Something like this:

type Store struct {}

func (s *Store) Get[model any](key string) (*model, error) {
  ...
}

Currently, having a generic inside a struct function can throw a syntax error like:

syntax error: method must have no type parameters

References

@wenchy wenchy changed the title feat: use generics to get messagers go: use generics to get messagers Aug 11, 2025
@Kybxd
Copy link
Collaborator

Kybxd commented Dec 1, 2025

Based on the current Go support for generics, we adds a global generic function GetMessager for easy access to messagers in messagerMap, especially custom ones.

// GetMessager gets a messager from provided [MessagerMap]. It will return nil
// if not found by messager name.
func GetMessager[T Messager](messagerMap MessagerMap) T {
	var t T
	messager, _ := messagerMap[t.Name()].(T)
	return messager
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

help wanted Extra attention is needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants