pub enum Required {
Success,
AlreadyRequired,
}
Expand description
The side effect from a call to Kernel#require
.
In Ruby, require
is stateful. All required sources are tracked in a global
interpreter state accessible as $"
and $LOADED_FEATURES
.
The first time a file is required, it is parsed and executed by the
interpreter. If the file executes without raising an error, the file is
successfully required and Rust callers can expect a Required::Success
variant. Files that are successfully required are added to the interpreter’s
set of loaded features.
If the file raises an exception as it is required, Rust callers can expect
an Err
variant. The file is not added to the set of loaded features.
If the file has previously been required such that Required::Success
has
been returned, all subsequent calls to require the file will return
Required::AlreadyRequired
.
See the documentation of require_source
for more details.
Variants§
Success
Kernel#require
succeeded at requiring the file.
If this variant is returned, this is the first time the given file has been required in the interpreter.
This variant has value true
when converting to a Boolean as returned
by Kernel#require
.
AlreadyRequired
Kernel#require
did not require the file because it has already been
required.
If this variant is returned, this is at least the second time the given
file has been required. Interpreters guarantee that files are only
required once. To load a source multiple times, see load_source
and
Kernel#load
.
This variant has value false
when converting to a Boolean as returned
by Kernel#require
.
Trait Implementations§
Source§impl Ord for Required
impl Ord for Required
Source§impl PartialOrd for Required
impl PartialOrd for Required
impl Copy for Required
impl Eq for Required
impl StructuralPartialEq for Required
Auto Trait Implementations§
impl Freeze for Required
impl RefUnwindSafe for Required
impl Send for Required
impl Sync for Required
impl Unpin for Required
impl UnwindSafe for Required
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)