package omp

import "bytes"

type OMP struct {
	Header Header
	Data   Data
}

func (s OMP) Build() []byte {
	buff := bytes.NewBufferString("")
	buff.Write(s.Header.GetData())
	buff.Write(s.Data.GetIntro())
	buff.Write(s.Data.GetLibFor())
	return buff.Bytes()
}

type Data struct {
	Intro  []byte
	LibFor []byte
}

func (s *Data) GetIntro() []byte {
	return s.Intro
}

func (s *Data) SetIntro() {
	s.Intro = []byte("(in-package :om)")
}

func (s *Data) GetLibFor() []byte {
	return s.LibFor
}

func (s *Data) SetLibFor() {
	s.LibFor = []byte("(load-lib-for (quote nil))")
}
