diff options
author | 2022-06-22 23:21:48 -0700 | |
---|---|---|
committer | 2022-06-22 23:21:48 -0700 | |
commit | 729d445b6885f69dd2c6355f38707bd42851c791 (patch) | |
tree | f87a7c408929ea3f57bbb7ace380cf869da83c0e /src/bun.js/bindings/Buffer.h | |
parent | 25f820c6bf1d8ec6d444ef579cc036b8c0607b75 (diff) | |
download | bun-jarred/rename.tar.gz bun-jarred/rename.tar.zst bun-jarred/rename.zip |
change the directory structurejarred/rename
Diffstat (limited to 'src/bun.js/bindings/Buffer.h')
-rw-r--r-- | src/bun.js/bindings/Buffer.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/bun.js/bindings/Buffer.h b/src/bun.js/bindings/Buffer.h new file mode 100644 index 000000000..3dc828c87 --- /dev/null +++ b/src/bun.js/bindings/Buffer.h @@ -0,0 +1,54 @@ +#pragma once +// ----- THIS IS NOT WEBCORE ---- +// It reuses the namespace. +// ----- THIS IS NOT WEBCORE ---- + +// Node.js buffer + +#include "root.h" + +#include "BufferEncodingType.h" +#include "JavaScriptCore/GenericTypedArrayView.h" +#include "JavaScriptCore/JSBase.h" +#include "headers-handwritten.h" + +extern "C" JSC::EncodedJSValue JSBuffer__bufferFromPointerAndLengthAndDeinit(JSC::JSGlobalObject* lexicalGlobalObject, char* ptr, unsigned int length, void* ctx, JSTypedArrayBytesDeallocator bytesDeallocator); +extern "C" JSC::EncodedJSValue Bun__encoding__toStringUTF16(const uint8_t* input, size_t len, JSC::JSGlobalObject* globalObject); +extern "C" JSC::EncodedJSValue Bun__encoding__toStringUTF8(const uint8_t* input, size_t len, JSC::JSGlobalObject* globalObject); +extern "C" JSC::EncodedJSValue Bun__encoding__toStringASCII(const uint8_t* input, size_t len, JSC::JSGlobalObject* globalObject); +extern "C" JSC::EncodedJSValue Bun__encoding__toStringLatin1(const uint8_t* input, size_t len, JSC::JSGlobalObject* globalObject); +extern "C" JSC::EncodedJSValue Bun__encoding__toStringHex(const uint8_t* input, size_t len, JSC::JSGlobalObject* globalObject); +extern "C" JSC::EncodedJSValue Bun__encoding__toStringBase64(const uint8_t* input, size_t len, JSC::JSGlobalObject* globalObject); +extern "C" JSC::EncodedJSValue Bun__encoding__toStringURLSafeBase64(const uint8_t* input, size_t len, JSC::JSGlobalObject* globalObject); +extern "C" void Bun__Buffer_fill(JSC::JSGlobalObject*, Bun__ArrayBuffer*, ZigString*, uint32_t, uint32_t, WebCore::BufferEncodingType); + +namespace WebCore { + +class Buffer final : public RefCounted<Buffer> { +public: + using Adaptor = JSC::JSUint8Array::Adaptor; + ~Buffer(); + + static int32_t write(WTF::StringView view, size_t offset, size_t length, BufferEncodingType encodingType); + + static Ref<Buffer> create(JSC::JSGlobalObject* globalObject, JSC::JSUint8Array*, size_t byteOffset, size_t length); + static Ref<Buffer> create(JSC::JSGlobalObject* globalObject, JSC::JSUint8Array*); + + static Ref<Buffer> createEmpty(JSC::JSGlobalObject* globalObject); + static Ref<Buffer> create(JSC::JSGlobalObject* globalObject, UChar* ptr, size_t len, BufferEncodingType encoding); + static Ref<Buffer> create(JSC::JSGlobalObject* globalObject, LChar* ptr, size_t len, BufferEncodingType encoding); + + static Ref<Buffer> create(JSC::JSGlobalObject* globalObject, WTF::StringView&, BufferEncodingType encoding); + static Ref<Buffer> create(JSC::JSGlobalObject* globalObject, WTF::String&, BufferEncodingType encoding); + + Buffer(JSC::JSGlobalObject* globalObject, JSC::JSUint8Array* array, size_t byteOffset, + size_t length) + : m_array(array) + + { + } + + JSC::JSUint8Array* m_array; +}; + +}
\ No newline at end of file |