public static void Encode <T1, T2, T3>(ref SliceWriter writer, [NotNull] IOrderedTypeCodec <T1> codec1, T1 value1, [NotNull] IOrderedTypeCodec <T2> codec2, T2 value2, [NotNull] IOrderedTypeCodec <T3> codec3, T3 value3)
 {
     Contract.Assert(codec1 != null && codec2 != null && codec3 != null);
     codec1.EncodeOrderedSelfTerm(ref writer, value1);
     codec2.EncodeOrderedSelfTerm(ref writer, value2);
     codec3.EncodeOrderedSelfTerm(ref writer, value3);
 }
            public static IKeyEncoder <T> Bind <T>([NotNull] IOrderedTypeCodec <T> codec)
            {
                if (codec == null)
                {
                    throw new ArgumentNullException("codec");
                }

                return(new OrderedKeyEncoder <T>(codec));
            }
            public static ICompositeKeyEncoder <T1, T2> Bind <T1, T2>([NotNull] IOrderedTypeCodec <T1> codec1, [NotNull] IOrderedTypeCodec <T2> codec2)
            {
                if (codec1 == null)
                {
                    throw new ArgumentNullException("codec1");
                }
                if (codec2 == null)
                {
                    throw new ArgumentNullException("codec2");
                }

                return(new CodecCompositeKeyEncoder <T1, T2>(codec1, codec2));
            }
 public static void Partial <T1>(ref SliceWriter writer, IOrderedTypeCodec <T1> codec1, T1 value1)
 {
     Contract.Assert(codec1 != null);
     codec1.EncodeOrderedSelfTerm(ref writer, value1);
 }
 public CodecCompositeKeyEncoder(IOrderedTypeCodec <T1> codec1, IOrderedTypeCodec <T2> codec2)
 {
     m_codec1 = codec1;
     m_codec2 = codec2;
 }
 public OrderedKeyEncoder(IOrderedTypeCodec <T> codec)
 {
     Contract.Requires(codec != null);
     m_codec = codec;
 }