From a4fe419c55ffe255e3b85211d2294a7b6111345d Mon Sep 17 00:00:00 2001 From: Admin <2762713521@qq.com> Date: Tue, 12 Mar 2024 14:04:04 +0800 Subject: [PATCH] sync --- gen/fileAction_gen.go | 6 +++--- gen/gen.go | 6 +++--- safeType/bytes.tar | Bin 166400 -> 0 bytes safeType/go.mod | 14 ++++++++++++++ safeType/go.sum | 17 +++++++++++++++++ safeType/safeType.go | 5 ----- 6 files changed, 37 insertions(+), 11 deletions(-) delete mode 100644 safeType/bytes.tar create mode 100644 safeType/go.mod create mode 100644 safeType/go.sum diff --git a/gen/fileAction_gen.go b/gen/fileAction_gen.go index 1bfc457b..af9277eb 100644 --- a/gen/fileAction_gen.go +++ b/gen/fileAction_gen.go @@ -17,9 +17,9 @@ func WriteGoFile[T safeType.Type](name string, data T) (ok bool) { return write(name, false, source) } -func WriteAppend[T safeType.Type](name string, data T) (ok bool) { return write(name, true, data) } -func WriteTruncate[T safeType.Type](name string, data T) (ok bool) { return write(name, false, data) } -func WriteBinaryFile[T safeType.Type](name string, data T) (ok bool) { return write(name, false, data) } +func WriteAppend[T safeType.Type](name string, data T) bool { return write(name, true, data) } +func WriteTruncate[T safeType.Type](name string, data T) bool { return write(name, false, data) } +func WriteBinaryFile[T safeType.Type](name string, data T) bool { return write(name, false, data) } func write[T safeType.Type](name string, isAppend bool, data T) (ok bool) { if !CreatDirectory(filepath.Dir(name)) { diff --git a/gen/gen.go b/gen/gen.go index 50acb5f8..25f28e50 100644 --- a/gen/gen.go +++ b/gen/gen.go @@ -165,9 +165,9 @@ func (g *GeneratedFile) FileAction() { g.P("}") g.P("") - g.P("func WriteAppend[T safeType.Type](name string, data T) (ok bool) { return write(name, true, data) }") - g.P("func WriteTruncate[T safeType.Type](name string, data T) (ok bool) { return write(name, false, data) }") - g.P("func WriteBinaryFile[T safeType.Type](name string, data T) (ok bool) { return write(name, false, data) }") + g.P("func WriteAppend[T safeType.Type](name string, data T) bool { return write(name, true, data) }") + g.P("func WriteTruncate[T safeType.Type](name string, data T) bool { return write(name, false, data) }") + g.P("func WriteBinaryFile[T safeType.Type](name string, data T) bool{ return write(name, false, data) }") g.P("") g.P("func write[T safeType.Type](name string, isAppend bool, data T) (ok bool) {") diff --git a/safeType/bytes.tar b/safeType/bytes.tar deleted file mode 100644 index 91c19e3d0d029944d303f5ac738eb426dbc5f179..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166400 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 XMPHpC#%oBgDe#&CuPN|VQ{evqEH&-m diff --git a/safeType/go.mod b/safeType/go.mod new file mode 100644 index 00000000..29a4cb5f --- /dev/null +++ b/safeType/go.mod @@ -0,0 +1,14 @@ +module github.com/ddkwork/golibrary/safeType + +go 1.22 + +require github.com/ddkwork/golibrary/mylog v0.0.0-20240312053312-24e9fd979e5f + +require ( + github.com/fatih/color v1.16.0 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect + golang.org/x/sys v0.18.0 // indirect + golang.org/x/text v0.14.0 // indirect +) diff --git a/safeType/go.sum b/safeType/go.sum new file mode 100644 index 00000000..d5a81d59 --- /dev/null +++ b/safeType/go.sum @@ -0,0 +1,17 @@ +github.com/ddkwork/golibrary/mylog v0.0.0-20240312053312-24e9fd979e5f h1:q9Kf+L8qgf3AS1Vv6BuQ8o+w5mBpWwAEHmRlh7u596A= +github.com/ddkwork/golibrary/mylog v0.0.0-20240312053312-24e9fd979e5f/go.mod h1:+npHC7A5w2HaMQTHEAt8UvFaRMwTHDIlCOSFhGOrrno= +github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= +github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ= +golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= diff --git a/safeType/safeType.go b/safeType/safeType.go index 7b889df6..3ff9671b 100644 --- a/safeType/safeType.go +++ b/safeType/safeType.go @@ -2,7 +2,6 @@ package safeType import ( "bytes" - "sync" ) type ( @@ -16,11 +15,7 @@ type ( type Data struct{ *bytes.Buffer } -var mu sync.RWMutex - func New[T Type](s T) *Data { - // mu.RLock() - // defer mu.RUnlock() switch s := any(s).(type) { case []byte: return &Data{bytes.NewBuffer(s)}