v8 147.4.0

Rust bindings to V8
Documentation
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// The explicit `extern crate` will catch if a GN target specifies conflicting
// dependencies.
//
// When libraries are included implicitly from the command line, rustc seems to
// silently pick the first one that matches. On the other hand with an explicit
// "extern crate" directive, which tells rustc to link a dependency no matter
// what, rustc will see the conflict.
extern crate transitive_dep;

chromium::import! {
    "//build/rust/tests/test_rust_metadata:foo_dependency";
}

pub use foo_dependency::say_foo;
pub use foo_dependency::say_foo_directly;
pub use transitive_dep::say_something;

#[unsafe(no_mangle)]
pub extern "C" fn print_foo_bar() {
    println!("{}", foo_dependency::say_foo());
    println!("{}", transitive_dep::say_something());
}