Trait libreda_db::layout::traits::LayoutIds

source ·
pub trait LayoutIds: HierarchyIds {
    type Coord: CoordinateType + Debug + Display + Hash + 'static + Send + Sync;
    type Area: Num + Copy + PartialOrd + From<Self::Coord> + 'static + Send + Sync;
    type LayerId: IdType;
    type ShapeId: IdType;
}
Expand description

Define ID types used in layouts.

Required Associated Types§

source

type Coord: CoordinateType + Debug + Display + Hash + 'static + Send + Sync

Number type used for coordinates and distances.

source

type Area: Num + Copy + PartialOrd + From<Self::Coord> + 'static + Send + Sync

Number type for areas. This is possibly another type then Coord for the following reasons:

  • Distances and areas are semantically different.
  • In practice i32 is a good choice for coordinates. However, computing areas in i32 might easily lead to overflows. Hence a 64-bit integer type might be a better choice.
source

type LayerId: IdType

Layer identifier type.

source

type ShapeId: IdType

Shape identifier type.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<T> LayoutIds for &T
where T: LayoutIds,

§

type ShapeId = <T as LayoutIds>::ShapeId

§

type Coord = <T as LayoutIds>::Coord

§

type Area = <T as LayoutIds>::Area

§

type LayerId = <T as LayoutIds>::LayerId

source§

impl<T> LayoutIds for &mut T
where T: LayoutIds,

§

type Area = <T as LayoutIds>::Area

§

type Coord = <T as LayoutIds>::Coord

§

type LayerId = <T as LayoutIds>::LayerId

§

type ShapeId = <T as LayoutIds>::ShapeId

source§

impl<T> LayoutIds for Box<T>
where T: LayoutIds,

§

type LayerId = <T as LayoutIds>::LayerId

§

type ShapeId = <T as LayoutIds>::ShapeId

§

type Coord = <T as LayoutIds>::Coord

§

type Area = <T as LayoutIds>::Area

source§

impl<T> LayoutIds for Rc<T>
where T: LayoutIds,

§

type ShapeId = <T as LayoutIds>::ShapeId

§

type Coord = <T as LayoutIds>::Coord

§

type LayerId = <T as LayoutIds>::LayerId

§

type Area = <T as LayoutIds>::Area

source§

impl<T> LayoutIds for Arc<T>
where T: LayoutIds,

§

type Coord = <T as LayoutIds>::Coord

§

type LayerId = <T as LayoutIds>::LayerId

§

type ShapeId = <T as LayoutIds>::ShapeId

§

type Area = <T as LayoutIds>::Area

Implementors§

source§

impl LayoutIds for Chip<Coord>

source§

impl<'b, N, U> LayoutIds for Undo<'b, N, U>
where N: LayoutIds,

§

type LayerId = <N as LayoutIds>::LayerId

§

type Coord = <N as LayoutIds>::Coord

§

type ShapeId = <N as LayoutIds>::ShapeId

§

type Area = <N as LayoutIds>::Area

source§

impl<L> LayoutIds for RegionSearchAdapter<L>
where L: LayoutBase, L::Coord: PrimInt + Signed + Debug,

§

type LayerId = <L as LayoutIds>::LayerId

§

type ShapeId = <L as LayoutIds>::ShapeId

§

type Coord = <L as LayoutIds>::Coord

§

type Area = <L as LayoutIds>::Area

source§

impl<L: LayoutIds> LayoutIds for DBPerf<L>

§

type Coord = <L as LayoutIds>::Coord

§

type Area = <L as LayoutIds>::Area

§

type LayerId = <L as LayoutIds>::LayerId

§

type ShapeId = <L as LayoutIds>::ShapeId