aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/Buffer.h
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-06-22 23:21:48 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-06-22 23:21:48 -0700
commit729d445b6885f69dd2c6355f38707bd42851c791 (patch)
treef87a7c408929ea3f57bbb7ace380cf869da83c0e /src/bun.js/bindings/Buffer.h
parent25f820c6bf1d8ec6d444ef579cc036b8c0607b75 (diff)
downloadbun-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.h54
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