toChainString method
Danger<String, ChainException>
toChainString(
- Box<Head> head
)
Implementation
Danger<String, ChainException> toChainString(Box<Head> head) {
final log = Log(classLocation: runtimeType, functionLocation: 'toChainString');
final List<Body> bodyList = [];
for (final i in value) {
final objectValuable = i.value;
switch (objectValuable) {
case CitrusFlag():
// true なら flag 追加
if (objectValuable.value) {
final result = Flag.from(i.name);
log.add(result);
if (result is! Success<Flag, FlagException>) return Failure(result.asException, log);
bodyList.add(result.wrapped);
}
case CitrusText():
final result = Variety.from(i.name, Some(objectValuable.value));
log.add(result);
if (result is! Success<Variety, VarietyException>) return Failure(result.asException, log);
bodyList.add(result.wrapped);
case CitrusTextArray():
final result = VarietyEnumeration.from(i.name, objectValuable.toPrimitive());
log.add(result);
if (result is! Success<VarietyEnumeration, VarietyEnumerationException>) return Failure(result.asException, log);
bodyList.add(result.wrapped);
}
}
final chainResult = Chain.result(head, bodyList);
log.add(chainResult);
if (chainResult is! Success<Chain, ChainException>) return Failure(chainResult.asException, log);
final result = chainResult.wrapped.serialize();
return Success(result, log);
}