use crate::{
ast::{AttributeList, GroupComments, GroupFn},
common::{
items::{Domain, WordSet},
table::TableLookUp,
},
expression::IdBooleanExpression,
timing::items::Mode,
};
#[derive(Debug, Default, Clone)]
#[derive(liberty_macros::Group)]
#[mut_set::derive::item(
sort,
macro(derive(Debug, Clone,Default);)
)]
#[derive(serde::Serialize, serde::Deserialize)]
pub struct InternalPower {
#[liberty(comments)]
pub comments: GroupComments<Self>,
#[liberty(undefined)]
pub undefined: AttributeList,
#[liberty(simple)]
#[id]
pub related_pin: WordSet,
#[liberty(simple)]
#[id]
pub related_pg_pin: WordSet,
#[liberty(simple(type = Option))]
#[id]
pub when: Option<IdBooleanExpression>,
#[liberty(complex(type = Option))]
mode: Option<Mode>,
#[liberty(group(type = Option))]
pub domain: Option<Domain>,
#[liberty(group(type = Option))]
pub rise_power: Option<TableLookUp>,
#[liberty(group(type = Option))]
pub fall_power: Option<TableLookUp>,
#[liberty(group(type = Option))]
pub power: Option<TableLookUp>,
}
impl GroupFn for InternalPower {}