Add initial implementation of Agate snapshot library

Introduces core functionality for the Agate library, including snapshot creation, restoration, listing, and deletion. Adds examples for basic usage, gRPC proto definitions, and build/configuration files such as `go.mod` and `Makefile`. The implementation establishes the framework for store integration and placeholder server functionality.
This commit is contained in:
2025-04-24 02:44:16 +03:00
commit 7e9cea9227
20 changed files with 2649 additions and 0 deletions

45
errors.go Normal file
View File

@ -0,0 +1,45 @@
package agate
import "errors"
// Определяем стандартные ошибки, которые могут возникать при работе со снапшотами.
// Использование стандартных переменных ошибок позволяет легко проверять тип ошибки
// с помощью errors.Is().
var (
// ErrNotFound означает, что снапшот с указанным ID не найден.
ErrNotFound = errors.New("snapshot not found")
// ErrAlreadyExists означает, что снапшот с таким ID или именем уже существует
// (если требуется уникальность имен).
ErrAlreadyExists = errors.New("snapshot already exists")
// ErrInvalidID означает, что предоставленный ID имеет неверный формат (например, не UUID).
ErrInvalidID = errors.New("invalid snapshot ID format")
// ErrParentNotFound означает, что указанный родительский снапшот (ParentID) не найден.
ErrParentNotFound = errors.New("parent snapshot not found")
// ErrSourceNotFound означает, что исходный путь (директория или файл) не найден.
ErrSourceNotFound = errors.New("source path not found")
// ErrSourceNotDirectory означает, что исходный путь не является директорией.
ErrSourceNotDirectory = errors.New("source path is not a directory")
// ErrCreateFailed общая ошибка при создании снапшота.
ErrCreateFailed = errors.New("failed to create snapshot")
// ErrDeleteFailed общая ошибка при удалении снапшота.
ErrDeleteFailed = errors.New("failed to delete snapshot")
// ErrListFailed общая ошибка при получении списка снапшотов.
ErrListFailed = errors.New("failed to list snapshots")
// ErrGetDetailsFailed общая ошибка при получении деталей снапшота.
ErrGetDetailsFailed = errors.New("failed to get snapshot details")
// ErrFileNotFound общая ошибка, если файл не найден (может использоваться внутри OpenFile).
ErrFileNotFound = errors.New("file not found within snapshot")
// ErrOperationFailed общая ошибка для неудачных операций.
ErrOperationFailed = errors.New("snapshot operation failed")
)