Esempio n. 1
0
        /// <inheritdoc />
        public bool TryLookup(uint key, [MaybeNullWhen(false)] out string str)
        {
            if (!_locations.TryGetValue(key, out var loc))
            {
                str = default;
                return(false);
            }

            switch (_type)
            {
            case StringsFileFormat.Normal:
                str = BinaryStringUtility.ParseUnknownLengthString(this._stringData.Slice(loc));
                break;

            case StringsFileFormat.LengthPrepended:
                try
                {
                    str = BinaryStringUtility.ParsePrependedString(this._stringData.Slice(loc), 4);
                }
                catch (ArgumentOutOfRangeException)
                {
                    throw new ArgumentOutOfRangeException("Strings file malformed.");
                }
                break;

            default:
                throw new NotImplementedException();
            }
            return(true);
        }
Esempio n. 2
0
        private string Get(int loc)
        {
            switch (_type)
            {
            case StringsFileFormat.Normal:
                return(BinaryStringUtility.ParseUnknownLengthString(this._stringData.Slice(loc)));

            case StringsFileFormat.LengthPrepended:
                try
                {
                    return(BinaryStringUtility.ParsePrependedString(this._stringData.Slice(loc), 4));
                }
                catch (ArgumentOutOfRangeException)
                {
                    throw new ArgumentOutOfRangeException("Strings file malformed.");
                }

            default:
                throw new NotImplementedException();
            }
        }
 public void ParsePrependedStringZeroLength()
 {
     BinaryStringUtility.ParsePrependedString(File.ReadAllBytes(TestDataPathing.ZeroContentPrependedString), 2, MutagenEncodingProvider._1252)
     .Should().Be("");
 }
 public void ParsePrependedStringTypical()
 {
     BinaryStringUtility.ParsePrependedString(File.ReadAllBytes(TestDataPathing.PrependedString), 2, MutagenEncodingProvider._1252)
     .Should().Be("HelloWorld");
 }