package crypto import "time" // GetReserved 仅用于测试,返回预留表副本。 // // 这是标准 Go export_test.go 手法:本文件属 package crypto(内部包), // 但文件名以 _test.go 结尾只在 `go test` 时编译,不进生产二进制/生产 API 面; // crypto_test.go(package crypto_test,黑盒测试)通过它访问私有字段 // p.reserved,而无需在 crypto.go 上暴露一个只为测试存在的导出方法。 func (p *Provider) GetReserved() map[string]time.Time { p.mu.Lock() defer p.mu.Unlock() m := make(map[string]time.Time, len(p.reserved)) for k, v := range p.reserved { m[k] = v } return m }