#![expect(clippy::arbitrary_source_item_ordering)]
pub trait Ctx: serde::Serialize + serde::de::DeserializeOwned + Default {
type Library: core::fmt::Debug
+ Clone
+ Default
+ serde::Serialize
+ serde::de::DeserializeOwned;
type Cell: crate::cell::CellCtx
+ core::fmt::Debug
+ Clone
+ Default
+ serde::Serialize
+ serde::de::DeserializeOwned;
type FFLatch: core::fmt::Debug
+ Clone
+ Default
+ serde::Serialize
+ serde::de::DeserializeOwned;
type Pin: core::fmt::Debug
+ Clone
+ Default
+ serde::Serialize
+ serde::de::DeserializeOwned;
type Timing: core::fmt::Debug
+ Clone
+ Default
+ serde::Serialize
+ serde::de::DeserializeOwned;
type InternalPower: core::fmt::Debug
+ Clone
+ Default
+ serde::Serialize
+ serde::de::DeserializeOwned;
type Table: core::fmt::Debug
+ Clone
+ Default
+ serde::Serialize
+ serde::de::DeserializeOwned;
type Other: core::fmt::Debug
+ Clone
+ Default
+ serde::Serialize
+ serde::de::DeserializeOwned;
}
#[derive(Debug, Default, Clone, Copy)]
#[derive(serde::Serialize, serde::Deserialize)]
pub struct DefaultCtx;
impl Ctx for DefaultCtx {
type Library = ();
type Cell = crate::cell::DefaultCellCtx;
type FFLatch = ();
type Pin = ();
type Timing = ();
type InternalPower = ();
type Table = ();
type Other = ();
}