Beispiel #1
0
 public Prefix(ulong version, MulticodecCode codec, HashType mhType, int mhLength)
 {
     Version         = version;
     Codec           = codec;
     MultihashType   = mhType;
     MultihashLength = mhLength;
 }
Beispiel #2
0
        public static byte[] SplitPrefix(byte[] data, int offset, int count, out MulticodecCode code)
        {
            ulong ulcode;
            var   n = Binary.Varint.Read(data, offset, out ulcode);

            code = (MulticodecCode)ulcode;
            return(data.Skip(offset + n).Take(count - (offset + n)).ToArray());
        }
        public void RoundTrip(MulticodecCode code)
        {
            var            data   = Encoding.UTF8.GetBytes("Hello World");
            var            mcdata = MulticodecPacked.AddPrefix(code, data);
            MulticodecCode outc;
            var            outdata = MulticodecPacked.SplitPrefix(mcdata, out outc);

            Assert.Equal(outc, code);
            Assert.Equal(MulticodecPacked.GetCode(mcdata), code);
            Assert.Equal(outdata, data);
        }
        public static string GetString(this MulticodecCode code)
        {
            var memberInfo = code.GetType().GetMember(code.ToString());

            if (memberInfo != null && memberInfo.Length > 0)
            {
                var attr = memberInfo[0].GetCustomAttribute <StringValueAttribute>();
                if (attr != null)
                {
                    return(attr.Value);
                }
            }

            return(code.ToString().ToLower());
        }
 public void CanGetCorrectEnumFromNumber(ulong n, MulticodecCode expected)
 {
     Assert.Equal((MulticodecCode)n, expected);
 }
 public void CanGetStringValuOfCode(MulticodecCode code, string expected)
 {
     Assert.Equal(code.GetString(), expected);
 }
Beispiel #7
0
 public Cid(MulticodecCode codec, Multihash hash)
     : this(1, codec, hash)
 {
 }
Beispiel #8
0
 protected Cid(ulong version, MulticodecCode codec, Multihash hash)
 {
     _version = version;
     Type     = codec;
     Hash     = hash;
 }
Beispiel #9
0
 public static byte[] SplitPrefix(byte[] data, int offset, out MulticodecCode code) => SplitPrefix(data, offset, data.Length - offset, out code);
Beispiel #10
0
 public static byte[] SplitPrefix(byte[] data, out MulticodecCode code) => SplitPrefix(data, 0, data.Length, out code);
Beispiel #11
0
 public static byte[] AddPrefix(MulticodecCode code, byte[] data, int offset = 0, int?count = null) => Binary.Varint.GetBytes((ulong)code).Concat(data.Skip(offset).Take(count ?? data.Length - offset)).ToArray();
Beispiel #12
0
 public void Register(MulticodecCode codec, Func <IBlock, INode> decoder)
 {
     _decoders.AddOrUpdate(codec, decoder, (c, existing) => decoder);
 }