diff --git a/arbitrum-docs/stylus/partials/_stylus-no-multi-inheritance-banner-partial.mdx b/arbitrum-docs/stylus/partials/_stylus-no-multi-inheritance-banner-partial.mdx new file mode 100644 index 000000000..946119ed4 --- /dev/null +++ b/arbitrum-docs/stylus/partials/_stylus-no-multi-inheritance-banner-partial.mdx @@ -0,0 +1,5 @@ +:::info + +Stylus doesn't support contract multi-inheritance yet. + +::: diff --git a/arbitrum-docs/stylus/reference/overview.md b/arbitrum-docs/stylus/reference/overview.md index 04aa51699..1b706a3b7 100644 --- a/arbitrum-docs/stylus/reference/overview.md +++ b/arbitrum-docs/stylus/reference/overview.md @@ -11,6 +11,7 @@ import PublicPreviewBannerPartial from '../../partials/_public-preview-banner-pa + This section provides an in-depth overview of the features provided by the [Stylus Rust SDK](https://github.com/OffchainLabs/stylus-sdk-rs). For information about deploying Rust smart contracts, see the `cargo stylus` [CLI Tool](https://github.com/OffchainLabs/cargo-stylus). For a conceptual introduction to Stylus, see [Stylus: A Gentle Introduction](../stylus-gentle-introduction.md). To deploy your first Stylus smart contract using Rust, refer to the [Quickstart](../stylus-quickstart.md). The Stylus Rust SDK is built on top of [Alloy](https://www.paradigm.xyz/2023/06/alloy), a collection of crates empowering the Rust Ethereum ecosystem. Because the SDK uses the same [Rust primitives for Ethereum types](https://docs.rs/alloy-primitives/latest/alloy_primitives/), Stylus is compatible with existing Rust libraries. diff --git a/arbitrum-docs/stylus/reference/rust-sdk-guide.md b/arbitrum-docs/stylus/reference/rust-sdk-guide.md index da5a8b9d9..08d394253 100644 --- a/arbitrum-docs/stylus/reference/rust-sdk-guide.md +++ b/arbitrum-docs/stylus/reference/rust-sdk-guide.md @@ -9,6 +9,8 @@ target_audience: Developers using the Stylus Rust SDK to write and deploy smart import PublicPreviewBannerPartial from '../../partials/_public-preview-banner-partial.mdx'; +import StylusNoMultiInheritanceBannerPartial from '../partials/_stylus-no-multi-inheritance-banner-partial.mdx' + This document provides information about advanced features included in the [Stylus Rust SDK](https://github.com/OffchainLabs/stylus-sdk-rs), that are not described in the previous pages. For information about deploying Rust smart contracts, see the `cargo stylus` [CLI Tool](https://github.com/OffchainLabs/cargo-stylus). For a conceptual introduction to Stylus, see [Stylus: A Gentle Introduction](../stylus-gentle-introduction.md). To deploy your first Stylus smart contract using Rust, refer to the [Quickstart](../stylus-quickstart.md). @@ -272,6 +274,10 @@ The [`#[entrypoint]`][entrypoint] macro will automatically implement the [`TopLe ### Inheritance, `#[inherit]`, and `#[borrow]`. + + + + Composition in Rust follows that of Solidity. Types that implement [`Router`][Router], the trait that [`#[public]`][public] provides, can be connected via inheritance. ```rust diff --git a/website/src/scripts/stylusByExampleDocsHandler.ts b/website/src/scripts/stylusByExampleDocsHandler.ts index 80975df2b..c039d46ae 100644 --- a/website/src/scripts/stylusByExampleDocsHandler.ts +++ b/website/src/scripts/stylusByExampleDocsHandler.ts @@ -130,7 +130,7 @@ function copyFiles(source, target) { // Adjust the file path const firstCodeBlock = `\`\`\`rust`; -const admonition = ` +const admonitionNotForProduction = ` import NotForProductionBannerPartial from '../partials/_not-for-production-banner-partial.mdx'; @@ -146,7 +146,7 @@ function addAdmonitionOneLineAboveFirstCodeBlock(content) { // Find the position two lines before firstCodeBlock const lines = content.substring(0, index).split('\n'); const insertLineIndex = lines.length - 2; - lines.splice(insertLineIndex, 0, admonition); + lines.splice(insertLineIndex, 0, admonitionNotForProduction); const newText = lines.join('\n') + content.substring(index); return newText;