Skip to main content

GroupMut

Struct GroupMut 

Source
pub struct GroupMut<'a> { /* private fields */ }
Expand description

Mutable reference to a Group. Implements DerefMut to &mut Group

Implementations§

Source§

impl GroupMut<'_>

Source

pub fn as_ref(&self) -> GroupRef<'_>

Get an immutable reference to this group

Source

pub fn group_mut(&mut self, id: GroupId) -> Option<GroupMut<'_>>

Get a mutable reference to a contained group by ID

Source

pub fn entry_mut(&mut self, id: EntryId) -> Option<EntryMut<'_>>

Get a mutable reference to a contained entry by ID

Source

pub fn edit(&mut self, f: impl FnOnce(&mut GroupMut<'_>)) -> &mut Self

Convenience method to edit the group in a closure.

Source

pub fn edit_tracking( &mut self, f: impl FnOnce(&mut GroupTrack<'_>), ) -> &mut Self

Convenience method to edit the group in a closure that tracks changes.

Source

pub fn add_group(&mut self) -> GroupMut<'_>

Adds a new subgroup to this group and returns a mutable reference to it.

Source

pub fn add_entry(&mut self) -> EntryMut<'_>

Adds a new entry to this group and returns a mutable reference to it.

Source

pub fn add_entry_with_id( &mut self, id: EntryId, ) -> Result<EntryMut<'_>, DuplicateEntryIdError>

Adds a new entry under a caller-supplied EntryId and returns a mutable reference to it.

Returns DuplicateEntryIdError if an entry with the same identifier already exists anywhere in the database.

§Example
use keepass::db::{Database, EntryId, fields};
use uuid::uuid;

let mut db = Database::new();
let entry_id: EntryId = uuid!("00000000-0000-0000-0000-000000000001").into();
db.root_mut()
    .add_entry_with_id(entry_id)
    .unwrap()
    .edit(|e| {
        e.set_unprotected(fields::TITLE, "My entry with defined UUID");
    });
Source

pub fn add_group_with_id( &mut self, id: GroupId, ) -> Result<GroupMut<'_>, DuplicateGroupIdError>

Adds a new subgroup under a caller-supplied GroupId and returns a mutable reference to it.

Returns DuplicateGroupIdError if a group with the same identifier already exists anywhere in the database.

§Example
use keepass::db::{Database, GroupId};
use uuid::uuid;

let mut db = Database::new();
let group_id: GroupId = uuid!("00000000-0000-0000-0000-000000000002").into();
db.root_mut()
    .add_group_with_id(group_id)
    .unwrap()
    .edit(|g| g.name = "Pinned group".to_string());
Source

pub fn database_mut(&mut self) -> &mut Database

Get a mutable reference to the database this group belongs to

Source

pub fn parent_mut(&mut self) -> Option<GroupMut<'_>>

Get a mutable reference to the parent group, if any

Source

pub fn previous_parent_mut(&mut self) -> Option<GroupMut<'_>>

Get a mutable reference to the previous parent group, if any

Source

pub fn group_by_name_mut(&mut self, name: &str) -> Option<GroupMut<'_>>

Find a contained group by name, case-insensitively, and return a mutable reference to it.

Source

pub fn entry_by_name_mut(&mut self, title: &str) -> Option<EntryMut<'_>>

Find a contained entry by title, case-insensitively, and return a mutable reference to it.

Source

pub fn group_by_path_mut(&mut self, path: &[&str]) -> Option<GroupMut<'_>>

Find a contained group by a path of names, case-insensitively, and return a mutable reference to it.

Source

pub fn set_icon_none(&mut self)

Remove the icon from this group, if it exists.

Source

pub fn set_icon_builtin(&mut self, icon_id: usize)

Set a built-in icon for this group by its ID, removing any existing icon.

Source

pub fn set_icon_custom( &mut self, custom_icon_id: CustomIconId, ) -> Result<(), CustomIconNotFoundError>

Set a custom icon for this group by its ID, removing any existing icon.

Source

pub fn set_icon_custom_new(&mut self, data: Vec<u8>) -> CustomIconMut<'_>

Set a custom icon for this group by providing the raw data, removing any existing icon. Returns a mutable reference to the newly created custom icon.

Source

pub fn custom_icon_mut(&mut self) -> Option<CustomIconMut<'_>>

Get a mutable reference to the custom icon of this group, if it exists and is a custom icon.

Source

pub fn move_to(&mut self, new_parent_id: GroupId) -> Result<(), MoveGroupError>

Move this group to a new parent group.

Performs sanity checking and will return an error if the destination does not exist, belongs to a different database, or if the move would create a cycle in the group hierarchy.

Source

pub fn remove(self)

Deletes this group and all its child groups and entries from the database.

Source

pub fn track_changes(&mut self) -> GroupTrack<'_>

Convert this mutable group reference into a history-tracking variant that will record changes such as deletions and moves.

Methods from Deref<Target = Group>§

Source

pub fn id(&self) -> GroupId

Get the unique identifier for this group

Source

pub fn group_ids(&self) -> impl Iterator<Item = GroupId> + '_

Get an iterator over the IDs of all contained groups

Source

pub fn entry_ids(&self) -> impl Iterator<Item = EntryId> + '_

Get an iterator over the IDs of all contained entries

Source

pub fn icon(&self) -> Option<&Icon>

Get a reference to the icon of this group, if any

Trait Implementations§

Source§

impl Deref for GroupMut<'_>

Source§

type Target = Group

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl DerefMut for GroupMut<'_>

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.

Auto Trait Implementations§

§

impl<'a> !UnwindSafe for GroupMut<'a>

§

impl<'a> Freeze for GroupMut<'a>

§

impl<'a> RefUnwindSafe for GroupMut<'a>

§

impl<'a> Send for GroupMut<'a>

§

impl<'a> Sync for GroupMut<'a>

§

impl<'a> Unpin for GroupMut<'a>

§

impl<'a> UnsafeUnpin for GroupMut<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.