mirror of
https://github.com/ScuroNeko/mtg.git
synced 2026-08-31 20:04:02 +03:00
FILE / ScuroNeko/mtg
ipblocklist/files/mem.go
Исходный файл и его история в репозитории.
39 lines
639 B
Go
39 lines
639 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"
|
|
}
|
|
|
|
// NewMem returns an openable file that is kept in RAM.
|
|
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(),
|
|
}
|
|
}
|