// NewOnceMap creates a [OnceMap] from a given construct function.
// construct should be kept light as it is called while holding a lock on the entire map.
return &OnceMap[K, T]{
construct: construct,
inner: make(map[K]T, 0),
}
}
func (m *OnceMap[K, T]) Get(key K) T {