/// <summary>
        /// Constructs a DictionaryBasedTrie from an Enumerable of FileTypes
        /// </summary>
        /// <param name="types"></param>
        public DictionaryTrie(IEnumerable <FileType> types)
        {
            if (types is null)
            {
                ThrowHelpers.FileTypeEnumerableIsNull();
            }

            foreach (var type in types)
            {
                if (!(type is null))
                {
                    this.Insert(type);
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// Constructs a DictionaryBasedTrie from an Enumerable of FileTypes
        /// </summary>
        /// <param name="types"></param>
        public DictionaryTrie(IEnumerable <FileType> types)
        {
            if (types is null)
            {
                ThrowHelpers.FileTypeEnumerableIsNull();
            }

            foreach (var type in types)
            {
                if ((object)type != null)
                {
                    Insert(type);
                }
            }
        }
        /// <summary>
        /// Constructs an ArrayBasedTrie from an Enumerable of FileTypes, <see cref="Insert(FileType)"/> to add more definitions
        /// </summary>
        /// <param name="types"></param>
        public LinearTrie(IEnumerable <FileType> types)
        {
            if (types is null)
            {
                ThrowHelpers.FileTypeEnumerableIsNull();
            }

            this.OffsetNodes[0] = new OffsetNode(0);

            foreach (var type in types)
            {
                if (!(type is null))
                {
                    this.Insert(type);
                }
            }
        }
Exemple #4
0
        /// <summary>
        /// Constructs an ArrayBasedTrie from an Enumerable of FileTypes, <see cref="Insert(FileType)"/> to add more definitions
        /// </summary>
        /// <param name="types"></param>
        public LinearTrie(IEnumerable <FileType> types)
        {
            if (types is null)
            {
                ThrowHelpers.FileTypeEnumerableIsNull();
            }

            OffsetNodes[0] = new OffsetNode(0);

            foreach (var type in types)
            {
                if ((object)type != null)
                {
                    Insert(type);
                }
            }
        }
        /// <summary>
        /// Constructs a LinearCountingAnalyzer using the supplied IEnumerable<FileType>
        /// </summary>
        /// <param name="fileTypes"></param>
        public LinearCounting(IEnumerable <FileType> fileTypes)
        {
            if (fileTypes is null)
            {
                ThrowHelpers.FileTypeEnumerableIsNull();
            }

            foreach (var fileType in fileTypes)
            {
                if (!(fileType is null))
                {
                    this.Insert(fileType);
                }
            }

            //types.OrderBy(x => x.HeaderOffset);
            //todo sort
            //Array.Sort<FileType>(types, (x,y) => x.HeaderOffset.CompareTo(y.HeaderOffset));
            //types = types;
        }