package main

import (
	"embed"
	"fmt"
	"io/fs"
)

//go:embed pesan.txt
var pesan string

//go:embed statis/*
var statis embed.FS

// embed.FS memenuhi interface fs.FS sehingga API io/fs standar bisa dipakai.
var _ fs.FS = statis

func main() {
	// String tertanam tersedia sebagai nilai biasa, tanpa membaca disk.
	fmt.Println("pesan  :", pesan)

	// ReadDir mendaftar isi direktori tertanam, terurut menurut nama.
	entri, err := statis.ReadDir("statis")
	if err != nil {
		fmt.Println("gagal membaca direktori:", err)
		return
	}
	for _, e := range entri {
		fmt.Println("entri  :", e.Name())
	}

	// fs.ReadFile membaca satu berkas dari sistem berkas tertanam.
	isi, err := fs.ReadFile(statis, "statis/tentang.md")
	if err != nil {
		fmt.Println("gagal membaca berkas:", err)
		return
	}
	fmt.Printf("tentang: %d byte\n%s\n", len(isi), isi)
}
