pub trait Source: Sealed {
    type Id;

    fn freq(&self) -> Hertz;
}
Expand description

Marks Enabled 1:N producer clocks that can act as a clock source

Implementers of this type act as producer clocks and feed consumer clocks in the clock tree. All implementors are Enabled, 1:N clocks. The Id associated type maps to the corresponding Id type of the implementer.

See the documentation on Source clocks for more details.

Required Associated Types

Corresponding Id type for the implementer

A given implementer of Source might have type parameters representing its configuration. For instance, EnabledXosc0<M> has a type parameter to track its Mode. However, a consumer clock typically does not care about such configuration. It only needs to know which upstream clock is its Source.

Id types exist to fill this role. They represent the identity of a given clock, regardless of any configuration. This is like the distinction between a passport and a person. A passport identifies a person, regardless of changes to their clothes or hair.

Thus, EnabledXosc0<M> implements Source with Id = Xosc0Id, regardless of M.

See the documentation on Id types for more details.

Required Methods

Return the frequency of the clock source

Implementors