static public byte [] PackEnumerable (string description, IEnumerable args)
{
PackContext b = new PackContext ();
b.conv = CopyConv;
b.description = description;
IEnumerator enumerator = args.GetEnumerator ();
bool ok = enumerator.MoveNext ();
for (b.i = 0; b.i < description.Length; ){
object oarg;
if (ok)
oarg = enumerator.Current;
else {
if (b.repeat != 0)
break;
oarg = null;
}
int save = b.i;
if (PackOne (b, oarg)){
ok = enumerator.MoveNext ();
if (b.repeat > 0){
if (--b.repeat > 0)
b.i = save;
else
b.i++;
} else
b.i++;
} else
b.i++;
}
return b.Get ();
}