2
0
mirror of https://github.com/esiur/esiur-dart.git synced 2025-06-27 06:43:13 +00:00
Files
esiur-dart/lib/src/Resource/Template/ArgumentTemplate.dart
2021-07-24 13:12:43 +03:00

33 lines
773 B
Dart

import '../../Data/DC.dart';
import '../../Data/BinaryList.dart';
import "../../Data/ParseResult.dart";
import './TemplateDataType.dart';
class ArgumentTemplate {
String name;
TemplateDataType type;
static ParseResult<ArgumentTemplate> parse(DC data, int offset) {
var cs = data[offset++];
var name = data.getString(offset, cs);
offset += cs;
var tdr = TemplateDataType.parse(data, offset);
return ParseResult<ArgumentTemplate>(
cs + 1 + tdr.size, ArgumentTemplate(name, tdr.value));
}
ArgumentTemplate(this.name, this.type);
DC compose() {
var name = DC.stringToBytes(this.name);
return (BinaryList()
..addUint8(name.length)
..addDC(name)
..addDC(type.compose()))
.toDC();
}
}