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}