Skip to main content

TransferReason

Enum TransferReason 

Source
#[non_exhaustive]
pub enum TransferReason { Sale, Return, Remanufacturing, Repurposing, PreparationForReuse, PreparationForRepurposing, WasteHandover, Import, InsolvencySuccession, }
Expand description

The reason for a transfer of DPP responsibility.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Sale

Product sold to a new economic operator for market placement.

§

Return

Product returned to the supply chain (e.g. customer return).

§

Remanufacturing

Product sent for remanufacturing.

§

Repurposing

Product adapted for a different purpose.

§

PreparationForReuse

Product prepared for resale as second-hand.

§

PreparationForRepurposing

Waste product prepared so that it can serve a different purpose.

Distinct from Self::Repurposing, and the difference is the input, not the outcome: Reg. (EU) 2023/1542 Art. 3(30) defines this over “a waste battery, or parts thereof”, while Art. 3(31) defines repurposing over “a battery, that is not a waste battery”. Art. 77(7) names all four second-life operations, and this one was the only one of them this enum could not express.

§

WasteHandover

The battery has become waste, and responsibility moves with it.

✅ COMPLIANCE-PIN: EU 2023/1542, Art. 77(7) second subparagraph (OJ L 191, 28.7.2023, p. 73) — responsibility passes to the producer, to the producer responsibility organisation where one is appointed under Art. 57(1), or to the waste management operator selected under Art. 57(8). The same subparagraph mandates no new passport, which is what distinguishes this handover from the four second-life operations.

Deliberately not folded into SecondLifeOperation: that is a different vocabulary. Those four describe second-life processing that produces a new unit, whereas this records a waste handover on a record that continues. Folding them would let the lineage-consent rule match a waste handover against a derivation edge, which is not the consent that rule is looking for.

§

Import

Product imported into the EU by a new importer.

§

InsolvencySuccession

Original operator became insolvent; responsibilities assumed by successor.

Implementations§

Source§

impl TransferReason

Source

pub const ALL: &'static [Self]

Every reason this build models, for exhaustive iteration.

TransferReason is #[non_exhaustive], so a consumer outside this crate cannot enumerate it, and one publishing an API description has to. See crate::seal::SealFormat::ALL for the same contract: a reason added later is deliberately not covered until it is added here.

Source

pub fn wire_str(&self) -> &'static str

The stable wire form, for payloads that carry the reason as a string.

Spelled out rather than derived from Serialize so that renaming a variant cannot silently change what a registry receives.

Trait Implementations§

Source§

impl Clone for TransferReason

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for TransferReason

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for TransferReason

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for TransferReason

Source§

impl PartialEq for TransferReason

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for TransferReason

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for TransferReason

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.