public void SerializeUsing <A, B, C, D, E, F, G, H, I, J, K, L, M, N, O>(
     A valueA, Writers.Writer <A> writerA,
     B valueB, Writers.Writer <B> writerB,
     C valueC, Writers.Writer <C> writerC,
     D valueD, Writers.Writer <D> writerD,
     E valueE, Writers.Writer <E> writerE,
     F valueF, Writers.Writer <F> writerF,
     G valueG, Writers.Writer <G> writerG,
     H valueH, Writers.Writer <H> writerH,
     I valueI, Writers.Writer <I> writerI,
     J valueJ, Writers.Writer <J> writerJ,
     K valueK, Writers.Writer <K> writerK,
     L valueL, Writers.Writer <L> writerL,
     M valueM, Writers.Writer <M> writerM,
     N valueN, Writers.Writer <N> writerN,
     O valueO, Writers.Writer <O> writerO
     )
 {
     writerA(valueA, array);
     writerB(valueB, array);
     writerC(valueC, array);
     writerD(valueD, array);
     writerE(valueE, array);
     writerF(valueF, array);
     writerG(valueG, array);
     writerH(valueH, array);
     writerI(valueI, array);
     writerJ(valueJ, array);
     writerK(valueK, array);
     writerL(valueL, array);
     writerM(valueM, array);
     writerN(valueN, array);
     writerO(valueO, array);
 }
 public void SerializeUsing <A, B, C, D, E, F, G, H, I, J, K>(
     A valueA, Writers.Writer <A> writerA,
     B valueB, Writers.Writer <B> writerB,
     C valueC, Writers.Writer <C> writerC,
     D valueD, Writers.Writer <D> writerD,
     E valueE, Writers.Writer <E> writerE,
     F valueF, Writers.Writer <F> writerF,
     G valueG, Writers.Writer <G> writerG,
     H valueH, Writers.Writer <H> writerH,
     I valueI, Writers.Writer <I> writerI,
     J valueJ, Writers.Writer <J> writerJ,
     K valueK, Writers.Writer <K> writerK
     )
 {
     writerA(valueA, array);
     writerB(valueB, array);
     writerC(valueC, array);
     writerD(valueD, array);
     writerE(valueE, array);
     writerF(valueF, array);
     writerG(valueG, array);
     writerH(valueH, array);
     writerI(valueI, array);
     writerJ(valueJ, array);
     writerK(valueK, array);
 }
 /* ***AUTO-GENERATED***
  * Use these methods to quickly serialize a bunch of values at once. */
 public void SerializeUsing <A, B>(
     A valueA, Writers.Writer <A> writerA,
     B valueB, Writers.Writer <B> writerB
     )
 {
     writerA(valueA, array);
     writerB(valueB, array);
 }
 public void SerializeUsing <A, B, C>(
     A valueA, Writers.Writer <A> writerA,
     B valueB, Writers.Writer <B> writerB,
     C valueC, Writers.Writer <C> writerC
     )
 {
     writerA(valueA, array);
     writerB(valueB, array);
     writerC(valueC, array);
 }
 public void SerializeUsing <A, B, C, D, E>(
     A valueA, Writers.Writer <A> writerA,
     B valueB, Writers.Writer <B> writerB,
     C valueC, Writers.Writer <C> writerC,
     D valueD, Writers.Writer <D> writerD,
     E valueE, Writers.Writer <E> writerE
     )
 {
     writerA(valueA, array);
     writerB(valueB, array);
     writerC(valueC, array);
     writerD(valueD, array);
     writerE(valueE, array);
 }
 public void SerializeUsing <A, B, C, D, E, F, G>(
     A valueA, Writers.Writer <A> writerA,
     B valueB, Writers.Writer <B> writerB,
     C valueC, Writers.Writer <C> writerC,
     D valueD, Writers.Writer <D> writerD,
     E valueE, Writers.Writer <E> writerE,
     F valueF, Writers.Writer <F> writerF,
     G valueG, Writers.Writer <G> writerG
     )
 {
     writerA(valueA, array);
     writerB(valueB, array);
     writerC(valueC, array);
     writerD(valueD, array);
     writerE(valueE, array);
     writerF(valueF, array);
     writerG(valueG, array);
 }
 /// Serialize an object using a writer function that implements how the
 /// object should be serialized.
 public void SerializeUsing <T>(T value, Writers.Writer <T> writer)
 {
     // Allow thrown exceptions to fall through into the caller.
     writer(value, array);
 }