pub struct RegisterBank { /* private fields */ }Expand description
Register storage for yank/paste operations.
This is a pure data structure without any system clipboard integration.
System clipboard access ("+ and "*) is handled at the driver level.
§Supported Registers
- Unnamed register (
"") - Default for all operations - Named registers (
"ato"z) - User-specified storage
§Example
use reovim_kernel::api::v1::*;
let mut bank = RegisterBank::new();
// Set unnamed register (default yank target)
bank.set(RegisterContent::characterwise("hello"));
assert_eq!(bank.get().text, "hello");
// Use named register
bank.set_named('a', RegisterContent::linewise("line content"));
assert_eq!(bank.get_named('a').map(|r| r.text.as_str()), Some("line content"));Implementations§
Source§impl RegisterBank
impl RegisterBank
Sourcepub const fn get(&self) -> &RegisterContent
pub const fn get(&self) -> &RegisterContent
Get the unnamed register content.
Sourcepub fn set(&mut self, content: RegisterContent)
pub fn set(&mut self, content: RegisterContent)
Set the unnamed register content.
Sourcepub fn get_named(&self, name: char) -> Option<&RegisterContent>
pub fn get_named(&self, name: char) -> Option<&RegisterContent>
Get a named register content (‘a’-‘z’).
Returns None if the register name is invalid or empty.
Sourcepub fn set_named(&mut self, name: char, content: RegisterContent) -> bool
pub fn set_named(&mut self, name: char, content: RegisterContent) -> bool
Set a named register content (‘a’-‘z’).
Returns true if successful, false if the register name is invalid.
Sourcepub fn append_named(&mut self, name: char, content: &str) -> bool
pub fn append_named(&mut self, name: char, content: &str) -> bool
Append to a named register (‘A’-‘Z’ appends to ‘a’-‘z’).
Returns true if successful, false if the register name is invalid.
Sourcepub fn clear_named(&mut self, name: char) -> bool
pub fn clear_named(&mut self, name: char) -> bool
Clear a named register.
Returns true if the register existed and was cleared.
Sourcepub fn get_by_name(&self, name: Option<char>) -> Option<&RegisterContent>
pub fn get_by_name(&self, name: Option<char>) -> Option<&RegisterContent>
Get register by name.
Noneor'"'returns the unnamed register'a'-'z'returns named registers
Sourcepub fn iter_non_empty(&self) -> impl Iterator<Item = (char, &RegisterContent)>
pub fn iter_non_empty(&self) -> impl Iterator<Item = (char, &RegisterContent)>
Iterate over all non-empty registers.
Returns an iterator of (name, content) pairs.
The unnamed register uses '"' as its name.
Sourcepub fn get_register(&self, reg: &Register) -> Option<&RegisterContent>
pub fn get_register(&self, reg: &Register) -> Option<&RegisterContent>
Get register content by typed Register.
Returns None for History, System, Session, and PeerHistory
variants (not stored in the per-client bank).
§Example
use reovim_kernel::api::v1::*;
let mut bank = RegisterBank::new();
bank.set(RegisterContent::characterwise("hello"));
assert_eq!(bank.get_register(&Register::Default).map(|r| r.text.as_str()), Some("hello"));
assert!(bank.get_register(&Register::System).is_none());Sourcepub fn set_register(&mut self, reg: &Register, content: RegisterContent) -> bool
pub fn set_register(&mut self, reg: &Register, content: RegisterContent) -> bool
Set register content by typed Register.
Returns false for read-only or non-bank registers.
§Example
use reovim_kernel::api::v1::*;
let mut bank = RegisterBank::new();
assert!(bank.set_register(&Register::Slot('a'), RegisterContent::characterwise("alpha")));
assert!(!bank.set_register(&Register::System, RegisterContent::characterwise("nope")));Sourcepub fn append_slot(&mut self, slot: char, content: &str) -> bool
pub fn append_slot(&mut self, slot: char, content: &str) -> bool
Append content to a slot register (lowercase a-z).
If the slot doesn’t exist, it is created with the given content.
Returns false if the slot character is not lowercase a-z.
Sourcepub fn set_by_name(
&mut self,
name: Option<char>,
content: RegisterContent,
) -> bool
pub fn set_by_name( &mut self, name: Option<char>, content: RegisterContent, ) -> bool
Set register by name.
Noneor'"'sets the unnamed register'a'-'z'sets named registers'A'-'Z'appends to named registers
Returns true if successful.
Trait Implementations§
Source§impl Clone for RegisterBank
impl Clone for RegisterBank
Source§fn clone(&self) -> RegisterBank
fn clone(&self) -> RegisterBank
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more