Просмотр исходного кода

SVI Добавление кода, типов, документации

SVI 2 лет назад
Родитель
Сommit
3653483e80
7 измененных файлов с 95 добавлено и 0 удалено
  1. 10 0
      Makefile
  2. 4 0
      README.md
  3. 18 0
      cmd/packer/main.go
  4. 3 0
      go.mod
  5. 24 0
      internal/packer/packer.go
  6. 31 0
      internal/service/service.go
  7. 5 0
      pkg/types/iservice.go

+ 10 - 0
Makefile

@@ -0,0 +1,10 @@
+app.build:
+	clear
+	go fmt ./...
+	go build -o ./bin/gpz ./cmd/packer/main.go
+app.run:
+	clear
+	go fmt ./...
+	go build -o ./bin/gpz ./cmd/packer/main.go
+	cd ./bin && \
+	./gpz --pack=./v_i_m.html

+ 4 - 0
README.md

@@ -21,3 +21,7 @@ flowchart TD
 (меньше 4х замён -- это минимальное значение для выйгрыша по месту).
 
 Далее, полученная комбинация отправляется на выходную ленту с новым архивным размером слова (с высокой вероятностью заметно больше 8 бит).
+
+## Образец для сжатия
+
+В папке `util` лежит HTML-файл "Война и мир" размером 5.7 МБ.

+ 18 - 0
cmd/packer/main.go

@@ -0,0 +1,18 @@
+// package main -- пускач для пакера
+package main
+
+import (
+	"log"
+
+	"p78git.ddns.net/svi/packer/internal/service"
+)
+
+func main() {
+	log.Printf("main()\n")
+	serv, err := service.NewService()
+	if err != nil {
+		log.Printf("main(): in create IService, err=\n\t%v\n", err)
+		return
+	}
+	serv.Run()
+}

+ 3 - 0
go.mod

@@ -0,0 +1,3 @@
+module p78git.ddns.net/svi/packer
+
+go 1.20

+ 24 - 0
internal/packer/packer.go

@@ -0,0 +1,24 @@
+// package packer -- упаковщик данных
+package packer
+
+import (
+	"fmt"
+
+	"p78git.ddns.net/svi/packer/pkg/types"
+)
+
+// Packer -- упаковщик сервиса
+type Packer struct {
+	serv types.IService
+}
+
+// NewPacker -- возвращает ноый пакер
+func NewPacker(serv types.IService) (*Packer, error) {
+	if serv == nil {
+		return nil, fmt.Errorf("NewPacker(): IService==nil")
+	}
+	sf := &Packer{
+		serv: serv,
+	}
+	return sf, nil
+}

+ 31 - 0
internal/service/service.go

@@ -0,0 +1,31 @@
+// package service -- главный тип пакера
+package service
+
+import (
+	"fmt"
+	"log"
+
+	"p78git.ddns.net/svi/packer/internal/packer"
+)
+
+// Service -- главный тип пакера
+type Service struct {
+	packer *packer.Packer
+}
+
+// NewService -- возвращает новый сервис
+func NewService() (*Service, error) {
+	log.Printf("NewService()\n")
+	sf := &Service{}
+	var err error
+	sf.packer, err = packer.NewPacker(sf)
+	if err != nil {
+		return nil, fmt.Errorf("NewService(): in create Packer, err=\n\t%w", err)
+	}
+	return sf, nil
+}
+
+// Run -- запускает сервис в работу
+func (sf *Service) Run() {
+	log.Printf("Service.Run()\n")
+}

+ 5 - 0
pkg/types/iservice.go

@@ -0,0 +1,5 @@
+// package types -- интерфейсы для проекта
+package types
+
+// IService -- сервис
+type IService interface{}