Struct easy_imgui_sys::ImGuiContext
source · #[repr(C)]pub struct ImGuiContext {Show 270 fields
pub Initialized: bool,
pub FontAtlasOwnedByContext: bool,
pub IO: ImGuiIO,
pub Style: ImGuiStyle,
pub Font: *mut ImFont,
pub FontSize: f32,
pub FontBaseSize: f32,
pub DrawListSharedData: ImDrawListSharedData,
pub Time: f64,
pub FrameCount: c_int,
pub FrameCountEnded: c_int,
pub FrameCountRendered: c_int,
pub WithinFrameScope: bool,
pub WithinFrameScopeWithImplicitWindow: bool,
pub WithinEndChild: bool,
pub GcCompactAll: bool,
pub TestEngineHookItems: bool,
pub TestEngine: *mut c_void,
pub InputEventsQueue: ImVector<ImGuiInputEvent>,
pub InputEventsTrail: ImVector<ImGuiInputEvent>,
pub InputEventsNextMouseSource: ImGuiMouseSource,
pub InputEventsNextEventId: ImU32,
pub Windows: ImVector<*mut ImGuiWindow>,
pub WindowsFocusOrder: ImVector<*mut ImGuiWindow>,
pub WindowsTempSortBuffer: ImVector<*mut ImGuiWindow>,
pub CurrentWindowStack: ImVector<ImGuiWindowStackData>,
pub WindowsById: ImGuiStorage,
pub WindowsActiveCount: c_int,
pub WindowsHoverPadding: ImVec2,
pub DebugBreakInWindow: ImGuiID,
pub CurrentWindow: *mut ImGuiWindow,
pub HoveredWindow: *mut ImGuiWindow,
pub HoveredWindowUnderMovingWindow: *mut ImGuiWindow,
pub MovingWindow: *mut ImGuiWindow,
pub WheelingWindow: *mut ImGuiWindow,
pub WheelingWindowRefMousePos: ImVec2,
pub WheelingWindowStartFrame: c_int,
pub WheelingWindowScrolledFrame: c_int,
pub WheelingWindowReleaseTimer: f32,
pub WheelingWindowWheelRemainder: ImVec2,
pub WheelingAxisAvg: ImVec2,
pub DebugHookIdInfo: ImGuiID,
pub HoveredId: ImGuiID,
pub HoveredIdPreviousFrame: ImGuiID,
pub HoveredIdAllowOverlap: bool,
pub HoveredIdDisabled: bool,
pub HoveredIdTimer: f32,
pub HoveredIdNotActiveTimer: f32,
pub ActiveId: ImGuiID,
pub ActiveIdIsAlive: ImGuiID,
pub ActiveIdTimer: f32,
pub ActiveIdIsJustActivated: bool,
pub ActiveIdAllowOverlap: bool,
pub ActiveIdNoClearOnFocusLoss: bool,
pub ActiveIdHasBeenPressedBefore: bool,
pub ActiveIdHasBeenEditedBefore: bool,
pub ActiveIdHasBeenEditedThisFrame: bool,
pub ActiveIdFromShortcut: bool,
pub _bitfield_align_1: [u8; 0],
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1]>,
pub ActiveIdClickOffset: ImVec2,
pub ActiveIdWindow: *mut ImGuiWindow,
pub ActiveIdSource: ImGuiInputSource,
pub ActiveIdPreviousFrame: ImGuiID,
pub ActiveIdPreviousFrameIsAlive: bool,
pub ActiveIdPreviousFrameHasBeenEditedBefore: bool,
pub ActiveIdPreviousFrameWindow: *mut ImGuiWindow,
pub LastActiveId: ImGuiID,
pub LastActiveIdTimer: f32,
pub LastKeyModsChangeTime: f64,
pub LastKeyModsChangeFromNoneTime: f64,
pub LastKeyboardKeyPressTime: f64,
pub KeysMayBeCharInput: ImBitArrayForNamedKeys,
pub KeysOwnerData: [ImGuiKeyOwnerData; 154],
pub KeysRoutingTable: ImGuiKeyRoutingTable,
pub ActiveIdUsingNavDirMask: ImU32,
pub ActiveIdUsingAllKeyboardKeys: bool,
pub DebugBreakInShortcutRouting: ImGuiKeyChord,
pub CurrentFocusScopeId: ImGuiID,
pub CurrentItemFlags: ImGuiItemFlags,
pub DebugLocateId: ImGuiID,
pub NextItemData: ImGuiNextItemData,
pub LastItemData: ImGuiLastItemData,
pub NextWindowData: ImGuiNextWindowData,
pub DebugShowGroupRects: bool,
pub DebugFlashStyleColorIdx: ImGuiCol,
pub ColorStack: ImVector<ImGuiColorMod>,
pub StyleVarStack: ImVector<ImGuiStyleMod>,
pub FontStack: ImVector<*mut ImFont>,
pub FocusScopeStack: ImVector<ImGuiFocusScopeData>,
pub ItemFlagsStack: ImVector<ImGuiItemFlags>,
pub GroupStack: ImVector<ImGuiGroupData>,
pub OpenPopupStack: ImVector<ImGuiPopupData>,
pub BeginPopupStack: ImVector<ImGuiPopupData>,
pub NavTreeNodeStack: ImVector<ImGuiNavTreeNodeData>,
pub Viewports: ImVector<*mut ImGuiViewportP>,
pub NavWindow: *mut ImGuiWindow,
pub NavId: ImGuiID,
pub NavFocusScopeId: ImGuiID,
pub NavFocusRoute: ImVector<ImGuiFocusScopeData>,
pub NavActivateId: ImGuiID,
pub NavActivateDownId: ImGuiID,
pub NavActivatePressedId: ImGuiID,
pub NavActivateFlags: ImGuiActivateFlags,
pub NavHighlightActivatedId: ImGuiID,
pub NavHighlightActivatedTimer: f32,
pub NavJustMovedToId: ImGuiID,
pub NavJustMovedToFocusScopeId: ImGuiID,
pub NavJustMovedToKeyMods: ImGuiKeyChord,
pub NavNextActivateId: ImGuiID,
pub NavNextActivateFlags: ImGuiActivateFlags,
pub NavInputSource: ImGuiInputSource,
pub NavLayer: ImGuiNavLayer,
pub NavLastValidSelectionUserData: ImGuiSelectionUserData,
pub NavIdIsAlive: bool,
pub NavMousePosDirty: bool,
pub NavDisableHighlight: bool,
pub NavDisableMouseHover: bool,
pub NavAnyRequest: bool,
pub NavInitRequest: bool,
pub NavInitRequestFromMove: bool,
pub NavInitResult: ImGuiNavItemData,
pub NavMoveSubmitted: bool,
pub NavMoveScoringItems: bool,
pub NavMoveForwardToNextFrame: bool,
pub NavMoveFlags: ImGuiNavMoveFlags,
pub NavMoveScrollFlags: ImGuiScrollFlags,
pub NavMoveKeyMods: ImGuiKeyChord,
pub NavMoveDir: ImGuiDir,
pub NavMoveDirForDebug: ImGuiDir,
pub NavMoveClipDir: ImGuiDir,
pub NavScoringRect: ImRect,
pub NavScoringNoClipRect: ImRect,
pub NavScoringDebugCount: c_int,
pub NavTabbingDir: c_int,
pub NavTabbingCounter: c_int,
pub NavMoveResultLocal: ImGuiNavItemData,
pub NavMoveResultLocalVisible: ImGuiNavItemData,
pub NavMoveResultOther: ImGuiNavItemData,
pub NavTabbingResultFirst: ImGuiNavItemData,
pub ConfigNavWindowingKeyNext: ImGuiKeyChord,
pub ConfigNavWindowingKeyPrev: ImGuiKeyChord,
pub NavWindowingTarget: *mut ImGuiWindow,
pub NavWindowingTargetAnim: *mut ImGuiWindow,
pub NavWindowingListWindow: *mut ImGuiWindow,
pub NavWindowingTimer: f32,
pub NavWindowingHighlightAlpha: f32,
pub NavWindowingToggleLayer: bool,
pub NavWindowingToggleKey: ImGuiKey,
pub NavWindowingAccumDeltaPos: ImVec2,
pub NavWindowingAccumDeltaSize: ImVec2,
pub DimBgRatio: f32,
pub DragDropActive: bool,
pub DragDropWithinSource: bool,
pub DragDropWithinTarget: bool,
pub DragDropSourceFlags: ImGuiDragDropFlags,
pub DragDropSourceFrameCount: c_int,
pub DragDropMouseButton: c_int,
pub DragDropPayload: ImGuiPayload,
pub DragDropTargetRect: ImRect,
pub DragDropTargetClipRect: ImRect,
pub DragDropTargetId: ImGuiID,
pub DragDropAcceptFlags: ImGuiDragDropFlags,
pub DragDropAcceptIdCurrRectSurface: f32,
pub DragDropAcceptIdCurr: ImGuiID,
pub DragDropAcceptIdPrev: ImGuiID,
pub DragDropAcceptFrameCount: c_int,
pub DragDropHoldJustPressedId: ImGuiID,
pub DragDropPayloadBufHeap: ImVector<c_uchar>,
pub DragDropPayloadBufLocal: [c_uchar; 16],
pub ClipperTempDataStacked: c_int,
pub ClipperTempData: ImVector<ImGuiListClipperData>,
pub CurrentTable: *mut ImGuiTable,
pub DebugBreakInTable: ImGuiID,
pub TablesTempDataStacked: c_int,
pub TablesTempData: ImVector<ImGuiTableTempData>,
pub Tables: ImPool<ImGuiTable>,
pub TablesLastTimeActive: ImVector<f32>,
pub DrawChannelsTempMergeBuffer: ImVector<ImDrawChannel>,
pub CurrentTabBar: *mut ImGuiTabBar,
pub TabBars: ImPool<ImGuiTabBar>,
pub CurrentTabBarStack: ImVector<ImGuiPtrOrIndex>,
pub ShrinkWidthBuffer: ImVector<ImGuiShrinkWidthItem>,
pub HoverItemDelayId: ImGuiID,
pub HoverItemDelayIdPreviousFrame: ImGuiID,
pub HoverItemDelayTimer: f32,
pub HoverItemDelayClearTimer: f32,
pub HoverItemUnlockedStationaryId: ImGuiID,
pub HoverWindowUnlockedStationaryId: ImGuiID,
pub MouseCursor: ImGuiMouseCursor,
pub MouseStationaryTimer: f32,
pub MouseLastValidPos: ImVec2,
pub InputTextState: ImGuiInputTextState,
pub InputTextDeactivatedState: ImGuiInputTextDeactivatedState,
pub InputTextPasswordFont: ImFont,
pub TempInputId: ImGuiID,
pub BeginMenuDepth: c_int,
pub BeginComboDepth: c_int,
pub ColorEditOptions: ImGuiColorEditFlags,
pub ColorEditCurrentID: ImGuiID,
pub ColorEditSavedID: ImGuiID,
pub ColorEditSavedHue: f32,
pub ColorEditSavedSat: f32,
pub ColorEditSavedColor: ImU32,
pub ColorPickerRef: ImVec4,
pub ComboPreviewData: ImGuiComboPreviewData,
pub WindowResizeBorderExpectedRect: ImRect,
pub WindowResizeRelativeMode: bool,
pub SliderGrabClickOffset: f32,
pub SliderCurrentAccum: f32,
pub SliderCurrentAccumDirty: bool,
pub DragCurrentAccumDirty: bool,
pub DragCurrentAccum: f32,
pub DragSpeedDefaultRatio: f32,
pub ScrollbarClickDeltaToGrabCenter: f32,
pub DisabledAlphaBackup: f32,
pub DisabledStackSize: c_short,
pub LockMarkEdited: c_short,
pub TooltipOverrideCount: c_short,
pub ClipboardHandlerData: ImVector<c_char>,
pub MenusIdSubmittedThisFrame: ImVector<ImGuiID>,
pub TypingSelectState: ImGuiTypingSelectState,
pub PlatformImeData: ImGuiPlatformImeData,
pub PlatformImeDataPrev: ImGuiPlatformImeData,
pub SettingsLoaded: bool,
pub SettingsDirtyTimer: f32,
pub SettingsIniData: ImGuiTextBuffer,
pub SettingsHandlers: ImVector<ImGuiSettingsHandler>,
pub SettingsWindows: ImChunkStream,
pub SettingsTables: ImChunkStream,
pub Hooks: ImVector<ImGuiContextHook>,
pub HookIdNext: ImGuiID,
pub LocalizationTable: [*const c_char; 8],
pub LogEnabled: bool,
pub LogType: ImGuiLogType,
pub LogFile: ImFileHandle,
pub LogBuffer: ImGuiTextBuffer,
pub LogNextPrefix: *const c_char,
pub LogNextSuffix: *const c_char,
pub LogLinePosY: f32,
pub LogLineFirstItem: bool,
pub LogDepthRef: c_int,
pub LogDepthToExpand: c_int,
pub LogDepthToExpandDefault: c_int,
pub DebugLogFlags: ImGuiDebugLogFlags,
pub DebugLogBuf: ImGuiTextBuffer,
pub DebugLogIndex: ImGuiTextIndex,
pub DebugLogAutoDisableFlags: ImGuiDebugLogFlags,
pub DebugLogAutoDisableFrames: ImU8,
pub DebugLocateFrames: ImU8,
pub DebugBreakInLocateId: bool,
pub DebugBreakKeyChord: ImGuiKeyChord,
pub DebugBeginReturnValueCullDepth: ImS8,
pub DebugItemPickerActive: bool,
pub DebugItemPickerMouseButton: ImU8,
pub DebugItemPickerBreakId: ImGuiID,
pub DebugFlashStyleColorTime: f32,
pub DebugFlashStyleColorBackup: ImVec4,
pub DebugMetricsConfig: ImGuiMetricsConfig,
pub DebugIDStackTool: ImGuiIDStackTool,
pub DebugAllocInfo: ImGuiDebugAllocInfo,
pub FramerateSecPerFrame: [f32; 60],
pub FramerateSecPerFrameIdx: c_int,
pub FramerateSecPerFrameCount: c_int,
pub FramerateSecPerFrameAccum: f32,
pub WantCaptureMouseNextFrame: c_int,
pub WantCaptureKeyboardNextFrame: c_int,
pub WantTextInputNextFrame: c_int,
pub TempBuffer: ImVector<c_char>,
pub TempKeychordName: [c_char; 64],
}Fields§
§Initialized: bool§FontAtlasOwnedByContext: bool§IO: ImGuiIO§Style: ImGuiStyle§Font: *mut ImFont§FontSize: f32§FontBaseSize: f32§Time: f64§FrameCount: c_int§FrameCountEnded: c_int§FrameCountRendered: c_int§WithinFrameScope: bool§WithinFrameScopeWithImplicitWindow: bool§WithinEndChild: bool§GcCompactAll: bool§TestEngineHookItems: bool§TestEngine: *mut c_void§InputEventsQueue: ImVector<ImGuiInputEvent>§InputEventsTrail: ImVector<ImGuiInputEvent>§InputEventsNextMouseSource: ImGuiMouseSource§InputEventsNextEventId: ImU32§Windows: ImVector<*mut ImGuiWindow>§WindowsFocusOrder: ImVector<*mut ImGuiWindow>§WindowsTempSortBuffer: ImVector<*mut ImGuiWindow>§CurrentWindowStack: ImVector<ImGuiWindowStackData>§WindowsById: ImGuiStorage§WindowsActiveCount: c_int§WindowsHoverPadding: ImVec2§DebugBreakInWindow: ImGuiID§CurrentWindow: *mut ImGuiWindow§HoveredWindow: *mut ImGuiWindow§HoveredWindowUnderMovingWindow: *mut ImGuiWindow§MovingWindow: *mut ImGuiWindow§WheelingWindow: *mut ImGuiWindow§WheelingWindowRefMousePos: ImVec2§WheelingWindowStartFrame: c_int§WheelingWindowScrolledFrame: c_int§WheelingWindowReleaseTimer: f32§WheelingWindowWheelRemainder: ImVec2§WheelingAxisAvg: ImVec2§DebugHookIdInfo: ImGuiID§HoveredId: ImGuiID§HoveredIdPreviousFrame: ImGuiID§HoveredIdAllowOverlap: bool§HoveredIdDisabled: bool§HoveredIdTimer: f32§HoveredIdNotActiveTimer: f32§ActiveId: ImGuiID§ActiveIdIsAlive: ImGuiID§ActiveIdTimer: f32§ActiveIdIsJustActivated: bool§ActiveIdAllowOverlap: bool§ActiveIdNoClearOnFocusLoss: bool§ActiveIdHasBeenPressedBefore: bool§ActiveIdHasBeenEditedBefore: bool§ActiveIdHasBeenEditedThisFrame: bool§ActiveIdFromShortcut: bool§_bitfield_align_1: [u8; 0]§_bitfield_1: __BindgenBitfieldUnit<[u8; 1]>§ActiveIdClickOffset: ImVec2§ActiveIdWindow: *mut ImGuiWindow§ActiveIdSource: ImGuiInputSource§ActiveIdPreviousFrame: ImGuiID§ActiveIdPreviousFrameIsAlive: bool§ActiveIdPreviousFrameHasBeenEditedBefore: bool§ActiveIdPreviousFrameWindow: *mut ImGuiWindow§LastActiveId: ImGuiID§LastActiveIdTimer: f32§LastKeyModsChangeTime: f64§LastKeyModsChangeFromNoneTime: f64§LastKeyboardKeyPressTime: f64§KeysMayBeCharInput: ImBitArrayForNamedKeys§KeysOwnerData: [ImGuiKeyOwnerData; 154]§KeysRoutingTable: ImGuiKeyRoutingTable§ActiveIdUsingAllKeyboardKeys: bool§DebugBreakInShortcutRouting: ImGuiKeyChord§CurrentFocusScopeId: ImGuiID§CurrentItemFlags: ImGuiItemFlags§DebugLocateId: ImGuiID§NextItemData: ImGuiNextItemData§LastItemData: ImGuiLastItemData§NextWindowData: ImGuiNextWindowData§DebugShowGroupRects: bool§DebugFlashStyleColorIdx: ImGuiCol§ColorStack: ImVector<ImGuiColorMod>§StyleVarStack: ImVector<ImGuiStyleMod>§FontStack: ImVector<*mut ImFont>§FocusScopeStack: ImVector<ImGuiFocusScopeData>§ItemFlagsStack: ImVector<ImGuiItemFlags>§GroupStack: ImVector<ImGuiGroupData>§OpenPopupStack: ImVector<ImGuiPopupData>§BeginPopupStack: ImVector<ImGuiPopupData>§Viewports: ImVector<*mut ImGuiViewportP>§DimBgRatio: f32§DragDropActive: bool§DragDropWithinSource: bool§DragDropWithinTarget: bool§DragDropSourceFlags: ImGuiDragDropFlags§DragDropSourceFrameCount: c_int§DragDropMouseButton: c_int§DragDropPayload: ImGuiPayload§DragDropTargetRect: ImRect§DragDropTargetClipRect: ImRect§DragDropTargetId: ImGuiID§DragDropAcceptFlags: ImGuiDragDropFlags§DragDropAcceptIdCurrRectSurface: f32§DragDropAcceptIdCurr: ImGuiID§DragDropAcceptIdPrev: ImGuiID§DragDropAcceptFrameCount: c_int§DragDropHoldJustPressedId: ImGuiID§DragDropPayloadBufHeap: ImVector<c_uchar>§DragDropPayloadBufLocal: [c_uchar; 16]§ClipperTempDataStacked: c_int§ClipperTempData: ImVector<ImGuiListClipperData>§CurrentTable: *mut ImGuiTable§DebugBreakInTable: ImGuiID§TablesTempDataStacked: c_int§TablesTempData: ImVector<ImGuiTableTempData>§Tables: ImPool<ImGuiTable>§TablesLastTimeActive: ImVector<f32>§DrawChannelsTempMergeBuffer: ImVector<ImDrawChannel>§CurrentTabBar: *mut ImGuiTabBar§TabBars: ImPool<ImGuiTabBar>§CurrentTabBarStack: ImVector<ImGuiPtrOrIndex>§ShrinkWidthBuffer: ImVector<ImGuiShrinkWidthItem>§HoverItemDelayId: ImGuiID§HoverItemDelayIdPreviousFrame: ImGuiID§HoverItemDelayTimer: f32§HoverItemDelayClearTimer: f32§HoverItemUnlockedStationaryId: ImGuiID§HoverWindowUnlockedStationaryId: ImGuiID§MouseCursor: ImGuiMouseCursor§MouseStationaryTimer: f32§MouseLastValidPos: ImVec2§InputTextState: ImGuiInputTextState§InputTextDeactivatedState: ImGuiInputTextDeactivatedState§InputTextPasswordFont: ImFont§TempInputId: ImGuiID§BeginMenuDepth: c_int§BeginComboDepth: c_int§ColorEditOptions: ImGuiColorEditFlags§ColorEditCurrentID: ImGuiID§ColorEditSavedID: ImGuiID§ColorEditSavedHue: f32§ColorEditSavedSat: f32§ColorEditSavedColor: ImU32§ColorPickerRef: ImVec4§ComboPreviewData: ImGuiComboPreviewData§WindowResizeBorderExpectedRect: ImRect§WindowResizeRelativeMode: bool§SliderGrabClickOffset: f32§SliderCurrentAccum: f32§SliderCurrentAccumDirty: bool§DragCurrentAccumDirty: bool§DragCurrentAccum: f32§DragSpeedDefaultRatio: f32§ScrollbarClickDeltaToGrabCenter: f32§DisabledAlphaBackup: f32§DisabledStackSize: c_short§LockMarkEdited: c_short§TooltipOverrideCount: c_short§ClipboardHandlerData: ImVector<c_char>§MenusIdSubmittedThisFrame: ImVector<ImGuiID>§TypingSelectState: ImGuiTypingSelectState§PlatformImeData: ImGuiPlatformImeData§PlatformImeDataPrev: ImGuiPlatformImeData§SettingsLoaded: bool§SettingsDirtyTimer: f32§SettingsIniData: ImGuiTextBuffer§SettingsHandlers: ImVector<ImGuiSettingsHandler>§SettingsWindows: ImChunkStream§SettingsTables: ImChunkStream§Hooks: ImVector<ImGuiContextHook>§HookIdNext: ImGuiID§LocalizationTable: [*const c_char; 8]§LogEnabled: bool§LogType: ImGuiLogType§LogFile: ImFileHandle§LogBuffer: ImGuiTextBuffer§LogNextPrefix: *const c_char§LogNextSuffix: *const c_char§LogLinePosY: f32§LogLineFirstItem: bool§LogDepthRef: c_int§LogDepthToExpand: c_int§LogDepthToExpandDefault: c_int§DebugLogFlags: ImGuiDebugLogFlags§DebugLogBuf: ImGuiTextBuffer§DebugLogIndex: ImGuiTextIndex§DebugLogAutoDisableFlags: ImGuiDebugLogFlags§DebugLogAutoDisableFrames: ImU8§DebugLocateFrames: ImU8§DebugBreakInLocateId: bool§DebugBreakKeyChord: ImGuiKeyChord§DebugBeginReturnValueCullDepth: ImS8§DebugItemPickerActive: bool§DebugItemPickerMouseButton: ImU8§DebugItemPickerBreakId: ImGuiID§DebugFlashStyleColorTime: f32§DebugFlashStyleColorBackup: ImVec4§DebugMetricsConfig: ImGuiMetricsConfig§DebugIDStackTool: ImGuiIDStackTool§DebugAllocInfo: ImGuiDebugAllocInfo§FramerateSecPerFrame: [f32; 60]§FramerateSecPerFrameIdx: c_int§FramerateSecPerFrameCount: c_int§FramerateSecPerFrameAccum: f32§WantCaptureMouseNextFrame: c_int§WantCaptureKeyboardNextFrame: c_int§WantTextInputNextFrame: c_int§TempBuffer: ImVector<c_char>§TempKeychordName: [c_char; 64]Implementations§
source§impl ImGuiContext
impl ImGuiContext
pub fn ActiveIdMouseButton(&self) -> c_int
pub fn set_ActiveIdMouseButton(&mut self, val: c_int)
pub fn new_bitfield_1( ActiveIdMouseButton: c_int ) -> __BindgenBitfieldUnit<[u8; 1]>
Auto Trait Implementations§
impl !RefUnwindSafe for ImGuiContext
impl !Send for ImGuiContext
impl !Sync for ImGuiContext
impl Unpin for ImGuiContext
impl !UnwindSafe for ImGuiContext
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
Mutably borrows from an owned value. Read more