Example #1
0
        public static LanguageWeightPair[] ToLanguageWeightPairs(this WeighByLanguageNative wbln)
        {
            var array = new LanguageWeightPair[wbln.CountBuckets];

            for (var i = 0; i < wbln.CountBuckets; i++)
            {
                var wbn = &wbln.WeighByLanguagesBasePtr[i];
                array[i] = new LanguageWeightPair()
                {
                    Language = wbn->Language, Weight = wbn->Weight
                };
            }
            return(array);
        }
Example #2
0
            public static WeighByLanguageNative Create(IntPtr weighByLanguagesBasePtr)
            {
                var pairsBytePtr = (byte *)weighByLanguagesBasePtr;
                //var countBuckets = *pairsBytePtr++;
                //var weighByLanguagesPtr = (WeighByLanguage*) pairsBytePtr;

                var weighByLanguageNative = new WeighByLanguageNative()
                {
                    CountBuckets            = *pairsBytePtr++,
                    WeighByLanguagesBasePtr = (WeighByLanguage *)pairsBytePtr,
                };

                return(weighByLanguageNative);
            }
Example #3
0
        unsafe public bool TryGetValue(string ngram, out WeighByLanguageNative weighByLanguageNative)
        {
            fixed(char *ngramPtr = ngram)
            {
                IntPtr weighByLanguagesBasePtr;

                if (_Dictionary.TryGetValue((IntPtr)ngramPtr, out weighByLanguagesBasePtr))
                {
                    weighByLanguageNative = WeighByLanguageNative.Create(weighByLanguagesBasePtr);
                    return(true);
                }
            }

            weighByLanguageNative = default(WeighByLanguageNative);
            return(false);
        }
Example #4
0
 public static WeighByLanguageNative ToWeighByLanguageNative(this IntPtr value)
 {
     return(WeighByLanguageNative.Create(value));
 }