FILE / ScuroNeko/mtg

ipblocklist/files/mem.go

Исходный файл и его история в репозитории.
FILE c0899d0743fe1fb997d0b22a236bd1752de90e91
Files
mtg/ipblocklist/files/mem.go
T
2022-03-21 10:18:50 +03:00

38 lines
586 B
Go

package files
import (
"context"
"io"
"net"
"strings"
)
type memFile struct {
data string
}
func (m memFile) Open(ctx context.Context) (io.ReadCloser, error) {
return io.NopCloser(strings.NewReader(m.data)), nil
}
func (m memFile) String() string {
return "mem"
}
func NewMem(networks []*net.IPNet) (File) {
builder := strings.Builder{}
if len(networks) > 0 {
builder.WriteString(networks[0].String())
}
for i := 1; i < len(networks); i++ {
builder.WriteString("\n")
builder.WriteString(networks[i].String())
}
return memFile{
data: builder.String(),
}
}