OwnedMemberAccessor

class OwnedMemberAccessor[R: OwningMembership, M: Element]
%3 OwnedMemberAccessor OwnedMemberAccessor syside.OwnedMemberAccessor MemberAccessor MemberAccessor syside.MemberAccessor MemberAccessor->OwnedMemberAccessor
Children
Members defined in OwnedMemberAccessor (2 members)

add_member_element

Constructs a new member_element with the default type if this member is empty, otherwise does nothing.

set_member_element

Set a new owned member_element, ownership constraints apply. Replaces the previous member_element, which may be reused by the model. name_id has no effect since the element is always taken ownership of.

Members inherited from MemberAccessor (5 members)

member_element

R

The member_element of this member if it is not empty.

membership

R

The membership of this member if it is not empty.

__bool__

extract_member_element

Extract the member_element leaving this member empty. Note that not all empty members are valid textual syntax. This does not check that the model is left in a valid state.

remove_member_element

Remove the member_element leaving this member empty. Note that not all empty members are valid textual syntax. This does not check that the model is left in a valid state.

Methods

add_member_element() tuple[syside.R, syside.M]

Constructs a new member_element with the default type if this member is empty, otherwise does nothing.

Returns a pair of (membership, member_element)

set_member_element(element: syside.M, name: syside.NameID = ...) tuple[syside.R, syside.M]

Set a new owned member_element, ownership constraints apply. Replaces the previous member_element, which may be reused by the model. name_id has no effect since the element is always taken ownership of.

Returns a pair of (membership, member_element) where member_element is element.

set_member_element(element: syside.M | None, name: syside.NameID = ...) tuple[syside.R, syside.M] | None

set_member_element overload that will remove the member element if element is None, otherwise the behaviour is the same.

set_member_element(arg: type[syside.M], /) tuple[syside.R, syside.M]

Constructs a new empty member_element with the provided type. Replaces the previous member_element. Because a new element is always constructed, ownership constraints do not apply.

Returns a pair of (membership, member_element).