pub struct Shape { /* private fields */ }Expand description
The boundary representation of a shape
Implementations
sourceimpl Shape
impl Shape
sourcepub fn insert<T>(&mut self, object: T) -> ValidationResult<T> where
T: Object,
pub fn insert<T>(&mut self, object: T) -> ValidationResult<T> where
T: Object,
Insert an object into the shape
Validates the object, and returns an error if it is not valid. See the documentation of each object for validation requirements.
sourcepub fn get_handle<T>(&self, object: &T) -> Option<Handle<T>> where
T: Object,
pub fn get_handle<T>(&self, object: &T) -> Option<Handle<T>> where
T: Object,
Access the handle of an object
Returns the handle that refers to the given object, if it is part of the
shape. Returns None, if it isn’t.
Implementation note
If object is present multiple times, the handle of the first that is
found is returned. This is weird. It would be better, if objects were
unique, but currently they are stored in Vecs.
This probably isn’t worth thinking too much about right now. At some point, we need smarter and probably more performant object storage anyway.
sourcepub fn get_handle_or_insert<T>(&mut self, object: T) -> ValidationResult<T> where
T: Object,
pub fn get_handle_or_insert<T>(&mut self, object: T) -> ValidationResult<T> where
T: Object,
Get handle of an identical object, if it exists, or add the object
In any case, returns a handle that refers to an object that is identical to the provided object.
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for Shape
impl Send for Shape
impl Sync for Shape
impl Unpin for Shape
impl !UnwindSafe for Shape
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more
fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s. Read more
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s. Read more
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct self from the equivalent element of its
superset. Read more
fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if self is actually part of its subset T (and can be converted to it).
fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as self.to_subset but without any property checks. Always succeeds.
fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts self to the equivalent element of its superset.
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into)Uses borrowed data to replace owned data, usually by cloning. Read more