Rust access control: Difference between revisions
From wikinotes
Line 19: | Line 19: | ||
* Modules are private by default, but can be published by their parent module | * Modules are private by default, but can be published by their parent module | ||
* Parent modules are visible to their children | * Parent modules are not visible to their children | ||
* Modules are implied by the filename, you can however create a submodule within a file using <code>mod ${your_module}</code> | * Modules are implied by the filename, you can however create a submodule within a file using <code>mod ${your_module}</code> | ||
</blockquote><!-- modules --> | </blockquote><!-- modules --> |
Revision as of 15:41, 8 February 2023
By default in rust, everything is private (current module access only).
Documentation
visibility and privacy | https://doc.rust-lang.org/reference/visibility-and-privacy.html |
Objects
- Objects are private by default.
- A private object instance cannot be returned to a different module.
- A public struct with private fields cannot be instantiated outside of it's module.
Modules
- Modules are private by default, but can be published by their parent module
- Parent modules are not visible to their children
- Modules are implied by the filename, you can however create a submodule within a file using
mod ${your_module}