// rocie - An enterprise grocery management system // // Copyright (C) 2026 Benedikt Peetz // SPDX-License-Identifier: GPL-3.0-or-later // // This file is part of Rocie. // // You should have received a copy of the License along with this program. // If not, see . use std::fmt::Display; use crate::models::{ BarcodeId, ProductId, ProductParentId, RecipeId, RecipeParentId, UnitId, UnitPropertyId, UserId, }; // TODO(@bpeetz): The client generator should just do this. <2025-09-23> impl Display for BarcodeId { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { self.value.fmt(f) } } impl Copy for BarcodeId {} impl Display for ProductId { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { self.value.fmt(f) } } impl Copy for ProductId {} impl Display for UnitId { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { self.value.fmt(f) } } impl Copy for UnitId {} impl Display for UnitPropertyId { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { self.value.fmt(f) } } impl Copy for UnitPropertyId {} impl Display for ProductParentId { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { self.value.fmt(f) } } impl Copy for ProductParentId {} impl Display for RecipeId { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { self.value.fmt(f) } } impl Copy for RecipeId {} impl Display for UserId { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { self.value.fmt(f) } } impl Copy for UserId {} impl Display for RecipeParentId { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { self.value.fmt(f) } } impl Copy for RecipeParentId {}