/**
         * <summary>
         * Converts map into protocol message.</summary>
         *
         * <param name="map">Map to convert.</param>
         * <returns>Protocol message map.</returns>
         */
        private static Map WrapMap <TKey, TVal>(IDictionary <TKey, TVal> map)
        {
            Map.Builder builder = Map.CreateBuilder();

            foreach (KeyValuePair <TKey, TVal> pair in map)
            {
                builder.AddEntry(WrapEntry(pair.Key, pair.Value));
            }

            return(builder.Build());
        }
        /**
         * <summary>
         * Converts map into protocol message.</summary>
         *
         * <param name="map">Map to convert.</param>
         * <returns>Protocol message map.</returns>
         */
        private static Map WrapMap(sc::IDictionary map)
        {
            Map.Builder builder = Map.CreateBuilder();

            foreach (sc::DictionaryEntry pair in map)
            {
                builder.AddEntry(WrapEntry(pair.Key, pair.Value));
            }

            return(builder.Build());
        }