Вопросы по теме '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 просмотров
schedule
30.03.2022
Haskell - Как вы добавляете строку байтов к ее длине в двоичном формате?
Я нахожусь в неудачной ситуации, когда мне нужно взаимодействовать с API-интерфейсом сокета Java непосредственно в Haskell. Способ, которым строки Java передаются по сети, заключается в том, что их длина добавляется к началу строки.
Например:...
234 просмотров
schedule
19.12.2022
Производительность чтения строки в Int в Haskell ( Bytestring vs [Char])
Просто делаю простой тест на Bytestring и String. Код загружает файлы из 10 000 000 строк, каждая из которых представляет собой целое число; а затем преобразовать каждую из строк в целое число. Оказывается, Prelude.read намного медленнее, чем...
1188 просмотров
schedule
16.07.2023
Как в 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