package main

import (
	"errors"
	"fmt"
	"io"
	"os"
)

func ReadFile(path string) ([]byte, error) {
	if path == "" {
		// Create an error with errors.New()
		return nil, errors.New("path is empty")
	}
	f, err := os.Open(path)
	if err != nil {
		// Wrap the error.
		// If the format string uses %w to format the error,
		// fmt.Errorf() returns an error that has the
		// method "func Unwrap() error" implemented.
		return nil, fmt.Errorf("open failed: %w", err)
	}
	defer f.Close()

	buf, err := io.ReadAll(f)
	if err != nil {
		return nil, fmt.Errorf("read failed: %w", err)
	}
	return buf, nil
}
