package syncx

import (
	
)

// Map is a type-safe wrapper for sync.Map.
type Map[ any,  any] struct {
	m sync.Map
}

// Delete is a type-safe wrapper for sync.Map’s Delete method.
func ( *Map[, ]) ( ) {
	.m.Delete()
}

// Load is a type-safe wrapper for sync.Map’s Load method.
func ( *Map[, ]) ( ) ( ,  bool) {
	,  := .m.Load()
	if  {
		, _ = .()
	}
	return
}

// LoadAndDelete is a type-safe wrapper for sync.Map’s LoadAndDelete method.
func ( *Map[, ]) ( ) ( ,  bool) {
	,  := .m.LoadAndDelete()
	if  {
		, _ = .()
	}
	return
}

// LoadOrStore is a type-safe wrapper for sync.Map’s LoadOrStore method.
func ( *Map[, ]) ( ,  ) ( ,  bool) {
	,  := .m.LoadOrStore(, )
	if  {
		, _ = .()
	} else {
		 = 
	}
	return
}

// Range is a type-safe wrapper for sync.Map’s Range method.
func ( *Map[, ]) ( func( ,  ) bool) {
	.m.Range(func(,  any) bool {
		,  := .()
		,  := .()
		return (, )
	})
}

// Store is a type-safe wrapper for sync.Map’s Store method.
func ( *Map[, ]) ( ,  ) {
	.m.Store(, )
}