11#include <promeki/config.h>
12#if PROMEKI_ENABLE_PROAV
22PROMEKI_NAMESPACE_BEGIN
94 List<uint16_t> bytePairs;
96 bool operator==(
const Line &o)
const {
97 return start == o.start && bytePairs == o.bytePairs;
99 bool operator!=(
const Line &o)
const {
return !(*
this == o); }
102 using LineList = ::promeki::List<Line>;
106 static constexpr const char *HeaderString =
"Scenarist_SCC V1.0";
112 explicit Scc(LineList lines) : _lines(std::move(lines)) {}
115 bool isEmpty()
const {
return _lines.isEmpty(); }
118 size_t size()
const {
return _lines.size(); }
121 const LineList &lines()
const {
return _lines; }
124 LineList &lines() {
return _lines; }
127 void append(
const Line &line) { _lines.pushToBack(line); }
130 void clear() { _lines = LineList(); }
132 bool operator==(
const Scc &o)
const {
return _lines == o._lines; }
133 bool operator!=(
const Scc &o)
const {
return !(*
this == o); }
151 static Result<Scc> fromBuffer(
const void *data,
size_t size);
154 static Result<Scc> fromBuffer(
const Buffer &buf);
157 static Result<Scc> fromString(
const String &str);
172 Buffer toBuffer()
const;
175 String toString()
const;
182DataStream &operator<<(DataStream &stream,
const Scc &scc);
185DataStream &operator>>(DataStream &stream, Scc &scc);