Вопросы по теме 'bytestring'

ByteStrings в Haskell
Итак, я пытаюсь написать программу, которая может читать файл класса Java как байт-код. Для этого я использую Data.Binary и Data.ByteStream. Проблема, с которой я сталкиваюсь, заключается в том, что я новичок в Haskell, и у меня возникают проблемы с...
1063 просмотров
schedule 29.07.2022

Как я могу преобразовать (StorableArray (Int, Int) Word8) в ленивую ByteString?
Я пытаюсь загрузить файл PNG, получить несжатые байты RGBA, а затем отправить их в пакеты gzip или zlib. Пакет pngload возвращает данные изображения в виде (StorableArray (Int, Int) Word8), а пакеты сжатия принимают ленивые ByteStrings. Поэтому я...
441 просмотров
schedule 07.12.2022

Запись хранимого экземпляра для CString с функцией O (1) для получения общей длины байта
Я пытаюсь написать сохраняемый вектор экземпляр для CString (в моем случае символы C с нулевым завершением). Сохраняемый экземпляр будет хранить указатели, которыми является CString (Ptr CChar). Итак, длина вектора — это количество указателей...
469 просмотров
schedule 24.03.2023

Чистота функций, генерирующих ByteString (или любой объект с компонентом ForeignPtr)
Поскольку ByteString является конструктором с ForeignPtr : data ByteString = PS {-# UNPACK #-} !(ForeignPtr Word8) -- payload {-# UNPACK #-} !Int                -- offset {-# UNPACK #-} !Int...
301 просмотров
schedule 02.10.2023

Где находится Network.Socket.ByteString.Lazy sendTo?
И Network.Socket.ByteString , и Network.Socket.ByteString.Lazy имеют функцию send . Network.Socket.ByteString имеет функцию sendTo , а Network.Socket.ByteString.Lazy — нет. Как я могу использовать sendTo Network.Socket.ByteString с...
251 просмотров
schedule 19.07.2023

Почему создание и удаление временных ByteString поглощает мою память в Haskell?
Вот код, который создает 1M Int чисел и помещает их в список. main = do let l = [1..1000000] putStrLn $ show $ sum (foldl (\aux p -> p:aux) [] l) (Я знаю, что это может быть более оптимальным ( sum в fold ), но моя точка зрения...
399 просмотров

Haskell - Как вы добавляете строку байтов к ее длине в двоичном формате?
Я нахожусь в неудачной ситуации, когда мне нужно взаимодействовать с API-интерфейсом сокета Java непосредственно в Haskell. Способ, которым строки Java передаются по сети, заключается в том, что их длина добавляется к началу строки. Например:...
234 просмотров
schedule 19.12.2022

Производительность чтения строки в Int в Haskell ( Bytestring vs [Char])
Просто делаю простой тест на Bytestring и String. Код загружает файлы из 10 000 000 строк, каждая из которых представляет собой целое число; а затем преобразовать каждую из строк в целое число. Оказывается, Prelude.read намного медленнее, чем...
1188 просмотров

Как в Haskell заменить подстроку символов ASCII в ByteString?
Как в Haskell заменить Подстрока символов ASCII в ByteString ? Как я могу использовать функцию replace в Data.ByteString.Search с использованием символа строки в качестве аргументов? Существуют ли другие способы замены подстроки в...
804 просмотров
schedule 24.06.2022

Использует ли Data.Attoparsec.ByteString нулевое копирование?
Возьмем, к примеру, takeWhile . Внутри он использует span . Означает ли это, что он просто ссылается на входную байтовую строку? Вероятно, нет, если да, то есть ли способ добиться этого? Мотивирующий вариант использования — это большой (> 2...
142 просмотров
schedule 18.05.2022

Преобразование буквальных символов в Word8
Документация для ByteString дает следующий пример кода: breakByte :: Word8 -> ByteString -> (ByteString, ByteString) breakByte 'c' "abcd" Однако, когда я пишу то же самое, я получаю следующую ошибку (ideone) : Couldn't match...
923 просмотров
schedule 15.02.2023

Чтение юникода из JSON в поле String с помощью aeson
Я получаю данные JSON, используя httpLbs, и читаю их import qualified Data.ByteString.Lazy.UTF8 as LB sendSimpleRequest :: Credentials -> IO LB.ByteString sendSimpleRequest creds = do <...> let request = applyBasicAuth user pass...
378 просмотров
schedule 06.04.2024

Как создать две строки байтов, вызывающие этот API внешней библиотеки?
В настоящее время я пишу привязки к криптографической библиотеке, которая предоставляет функцию для создания пар ключей: const size_t PUBLICKEYBYTES = 32; const size_t SECRETKEYBYTES = 32; int random_keypair(unsigned char pk[PUBLICKEYBYTES],...
70 просмотров
schedule 25.04.2023

Ptr Word8 в ByteString
У меня есть вызов FFI, возвращающий некоторые байты данных (не CString ). В настоящее время я использую что-то вроде следующего: import qualified Data.ByteString as BS BS.pack <$> mapM (peekElem ptr) [0 .. n - 1] Есть ли более...
287 просмотров
schedule 03.07.2022

Построение RequestBodyStream из Lazy ByteString, когда известна длина
Я пытаюсь адаптировать этот код загрузки AWS S3 для обработки Lazy ByteString где длина уже известна (чтобы ее не читали целиком в память - она ​​приходит по сети, куда длина отправляется заранее). Кажется, мне нужно определить GivesPopper...
83 просмотров
schedule 17.04.2022

IOUArray в ByteSring, как можно быстрее
Мне нужно очень быстро изменить элементы в массиве фиксированного размера Word8 . Для этой цели я использую файл IOUArray . Мне нужно отправить этот массив через соединение через веб-сокет. Для функции sendBinaryData из пакета websockets...
115 просмотров
schedule 03.01.2023

Как прочитать 5-байтовую вещь в «Word64», используя «двоичный»?
Можно ли прочитать 5-байтовый сегмент данных в Word64 с помощью пакета binary , оставив три старших бита пустыми? Или я должен использовать ByteString ?
106 просмотров
schedule 29.10.2022

Попытка передать случайную строку SHA в Haskell
Я пытаюсь передать случайную строку (которая оказывается числом) «4176730.5» в SHA в Haskell, чтобы получить большую случайную строку, например «2d711642b726b04401627ca9fbac32f5c8530fb1903cc4db02258717921a4881». У меня есть этот код для генерации...
118 просмотров
schedule 19.02.2023