public override void GenerateCopyInRet(
            FileGeneration fg,
            ObjectGeneration objGen,
            TypeGeneration targetGen,
            TypeGeneration typeGen,
            Accessor readerAccessor,
            AsyncMode asyncMode,
            Accessor retAccessor,
            Accessor outItemAccessor,
            Accessor errorMaskAccessor,
            Accessor translationAccessor,
            Accessor converterAccessor,
            bool inline)
        {
            if (inline)
            {
                throw new NotImplementedException();
            }
            if (asyncMode == AsyncMode.Direct)
            {
                throw new NotImplementedException();
            }
            ZeroType zero = typeGen as ZeroType;

            fg.AppendLine($"{readerAccessor}.SetPosition({readerAccessor}.Position + {zero.Length});");
        }
        public override async Task GenerateCopyIn(
            FileGeneration fg,
            ObjectGeneration objGen,
            TypeGeneration typeGen,
            Accessor readerAccessor,
            Accessor itemAccessor,
            Accessor errorMaskAccessor,
            Accessor translationMaskAccessor)
        {
            ZeroType zero = typeGen as ZeroType;

            fg.AppendLine($"{readerAccessor}.SetPosition({readerAccessor}.Position + {zero.Length});");
        }
        public override async Task GenerateWrite(
            FileGeneration fg,
            ObjectGeneration objGen,
            TypeGeneration typeGen,
            Accessor writerAccessor,
            Accessor itemAccessor,
            Accessor errorMaskAccessor,
            Accessor translationMaskAccessor,
            Accessor converterAccessor)
        {
            ZeroType zero = typeGen as ZeroType;

            fg.AppendLine($"{writerAccessor}.WriteZeros({zero.Length});");
        }
 private List<String> getFolderNames(int number, ZeroType zeroType)
 {
     List<String> names = new List<String>();
     if (number < 60)
     {
         // only numbers < 60 are supported
         if (number < 10)
         {
             // if the number is < 10, use the "oh two" files if we've asked for "oh" instead of "zero"
             if (zeroType == ZeroType.OH)
             {
                 if (number == 0)
                 {
                     // will this block ever be reached?
                     names.Add(folderNameOh);
                 }
                 else
                 {
                     names.Add(folderNameNumbersStub + "0" + number);
                 }
             }
             else if (zeroType == ZeroType.ZERO)
             {
                 names.Add(folderNameNumbersStub + 0);
                 if (number > 0)
                 {
                     names.Add(folderNameNumbersStub + number);
                 }
             }
             else if (zeroType != ZeroType.NONE || number > 0)
             {
                 names.Add(folderNameNumbersStub + number);
             }
         }
         else
         {
             // > 10 so use the actual number
             names.Add(folderNameNumbersStub + number);
         }
     }
     return names;
 }
        public override async Task <int?> ExpectedLength(ObjectGeneration objGen, TypeGeneration typeGen)
        {
            ZeroType zero = typeGen as ZeroType;

            return(zero.Length);
        }