0
0
Fork 0
mirror of https://github.com/denoland/rusty_v8.git synced 2024-11-25 15:29:43 -05:00
This commit is contained in:
Bert Belder 2019-10-20 16:10:40 -07:00
parent 1e3f137cc2
commit 0e86101ed9
No known key found for this signature in database
GPG key ID: 7A77887B2E2ED461
13 changed files with 46 additions and 45 deletions

View file

@ -2,6 +2,7 @@
"C_Cpp.clang_format_style": "Chromium", "C_Cpp.clang_format_style": "Chromium",
"files.associations": { "files.associations": {
"memory": "cpp", "memory": "cpp",
"vector": "cpp" "vector": "cpp",
"cctype": "cpp"
} }
} }

View file

@ -7,6 +7,7 @@
#include <utility> #include <utility>
#include "../goog/v8/include/v8-inspector.h" #include "../goog/v8/include/v8-inspector.h"
#include "../goog/v8/include/v8.h"
template <class T> template <class T>
using uninit_t = typename std::aligned_storage<sizeof(T), alignof(T)>::type; using uninit_t = typename std::aligned_storage<sizeof(T), alignof(T)>::type;
@ -17,6 +18,6 @@ auto launder(T ptr) {
return ptr; return ptr;
} }
#include "v8_inspector/channel.h" #include "v8/inspector/channel.h"
#include "v8_inspector/client.h" #include "v8/inspector/client.h"
#include "v8_inspector/string_buffer.h" #include "v8/string_buffer.h"

View file

@ -1,26 +1,26 @@
#![allow(dead_code)] #![allow(dead_code)]
#![allow(non_snake_case)] #![allow(non_snake_case)]
mod cxx_util; mod support;
mod v8_inspector; mod v8;
mod example { mod example {
use crate::cxx_util::UniquePtr; use crate::support::UniquePtr;
use crate::v8_inspector::channel::*; use crate::v8::inspector::channel::*;
use crate::v8_inspector::*; use crate::v8::*;
pub struct Example { pub struct Example {
a: i32, a: i32,
channel_extender: ChannelBase, channel_base: ChannelBase,
b: i32, b: i32,
} }
impl ChannelImpl for Example { impl ChannelImpl for Example {
fn base(&self) -> &ChannelBase { fn base(&self) -> &ChannelBase {
&self.channel_extender &self.channel_base
} }
fn base_mut(&mut self) -> &mut ChannelBase { fn base_mut(&mut self) -> &mut ChannelBase {
&mut self.channel_extender &mut self.channel_base
} }
fn sendResponse( fn sendResponse(
&mut self, &mut self,
@ -40,7 +40,7 @@ mod example {
impl Example { impl Example {
pub fn new() -> Self { pub fn new() -> Self {
Self { Self {
channel_extender: ChannelBase::new::<Self>(), channel_base: ChannelBase::new::<Self>(),
a: 2, a: 2,
b: 3, b: 3,
} }
@ -49,8 +49,8 @@ mod example {
} }
fn main() { fn main() {
use crate::v8_inspector::channel::*; use crate::v8::inspector::channel::*;
use crate::v8_inspector::*; use crate::v8::*;
use example::*; use example::*;
let mut ex = Example::new(); let mut ex = Example::new();
let chan = ex.as_channel_mut(); let chan = ex.as_channel_mut();

View file

@ -96,6 +96,7 @@ pub struct FieldOffset<F>(usize, PhantomData<F>);
unsafe impl<F> Send for FieldOffset<F> where F: Send {} unsafe impl<F> Send for FieldOffset<F> where F: Send {}
unsafe impl<F> Sync for FieldOffset<F> where F: Sync {} unsafe impl<F> Sync for FieldOffset<F> where F: Sync {}
impl<F> Copy for FieldOffset<F> {} impl<F> Copy for FieldOffset<F> {}
impl<F> Clone for FieldOffset<F> { impl<F> Clone for FieldOffset<F> {

View file

@ -1,11 +1,10 @@
use crate::cxx_util::int; use crate::support::int;
use crate::cxx_util::CxxVTable; use crate::support::CxxVTable;
use crate::cxx_util::FieldOffset; use crate::support::FieldOffset;
use crate::cxx_util::Opaque; use crate::support::Opaque;
use crate::cxx_util::RustVTable; use crate::support::RustVTable;
use crate::cxx_util::UniquePtr; use crate::support::UniquePtr;
use crate::v8::StringBuffer;
use super::StringBuffer;
// class Channel { // class Channel {
// public: // public:

View file

@ -1,8 +1,8 @@
use crate::cxx_util::int; use crate::support::int;
use crate::cxx_util::CxxVTable; use crate::support::CxxVTable;
use crate::cxx_util::FieldOffset; use crate::support::FieldOffset;
use crate::cxx_util::Opaque; use crate::support::Opaque;
use crate::cxx_util::RustVTable; use crate::support::RustVTable;
// class V8InspectorClient { // class V8InspectorClient {
// public: // public:

5
src/v8/inspector/mod.rs Normal file
View file

@ -0,0 +1,5 @@
pub mod channel;
pub mod client;
pub use channel::Channel;
pub use client::Client;

View file

@ -1,9 +1,6 @@
pub mod channel; pub mod inspector;
pub mod client;
pub mod string_buffer; pub mod string_buffer;
pub mod string_view; pub mod string_view;
pub use channel::Channel;
pub use client::Client;
pub use string_buffer::StringBuffer; pub use string_buffer::StringBuffer;
pub use string_view::StringView; pub use string_view::StringView;

View file

@ -1,10 +1,9 @@
use crate::cxx_util::CxxVTable; use crate::support::CxxVTable;
use crate::cxx_util::Delete; use crate::support::Delete;
use crate::cxx_util::UniquePtr; use crate::support::UniquePtr;
use crate::v8::StringView;
use super::StringView; // class StringBuffer {
// class V8_EXPORT StringBuffer {
// public: // public:
// virtual ~StringBuffer() = default; // virtual ~StringBuffer() = default;
// virtual const StringView& string() = 0; // virtual const StringView& string() = 0;

View file

@ -4,12 +4,6 @@ use std::ptr::null;
use std::ptr::NonNull; use std::ptr::NonNull;
use std::slice; use std::slice;
// Notes:
// * This class is ported, not wrapped using bindings.
// * Since Rust `repr(bool)` is not allowed, assume `bool` and `u8` have the
// same size. TODO: find/open upstream issue to allow #[repr(bool)] support.
// ```cpp
// class StringView { // class StringView {
// public: // public:
// StringView() : m_is8Bit(true), m_length(0), m_characters8(nullptr) {} // StringView() : m_is8Bit(true), m_length(0), m_characters8(nullptr) {}
@ -34,7 +28,11 @@ use std::slice;
// const uint16_t* m_characters16; // const uint16_t* m_characters16;
// }; // };
// }; // };
// ```
// Notes:
// * This class is ported, not wrapped using bindings.
// * Since Rust `repr(bool)` is not allowed, assume `bool` and `u8` have the
// same size. TODO: find/open upstream issue to allow #[repr(bool)] support.
#[repr(u8)] #[repr(u8)]
#[derive(Copy, Clone, Debug)] #[derive(Copy, Clone, Debug)]