From: Gabriel Goller <g.goller@proxmox.com>
To: Wolfgang Bumiller <w.bumiller@proxmox.com>
Cc: pbs-devel@lists.proxmox.com
Subject: Re: [pbs-devel] [PATCH v4 proxmox-backup 4/5] node: status: declutter kernel-version
Date: Wed, 29 Nov 2023 13:50:00 +0100 [thread overview]
Message-ID: <860129ad-64b5-44b2-bb05-bf6f6fa3272a@proxmox.com> (raw)
In-Reply-To: <e7zx65tjgetshodlko2rfc5yfsbnj2glhtcom3gqvyx3jacuck@xhu5a4jcge7w>
On 11/29/23 11:23, Wolfgang Bumiller wrote:
> On Wed, Nov 29, 2023 at 10:07:45AM +0100, Gabriel Goller wrote:
>>
>> +#[api]
>> +#[derive(Serialize, Deserialize, Default)]
>> +#[serde(rename_all = "lowercase")]
>> +/// The current kernel version (output of `uname`)
>> +pub struct KernelVersionInformation {
>> + /// The systemname/nodename
>> + pub sysname: String,
>> + /// The kernel release number
>> + pub release: String,
>> + /// The kernel version
>> + pub version: String,
>> + /// The machine architecture
>> + pub machine: String,
>> +}
>> +
>> +impl KernelVersionInformation {
>> + pub fn from_ostr(sysname: &OsStr, release: &OsStr, version: &OsStr, machine: &OsStr) -> Self {
> from_ostr is a bit of a weird name for a public method taking 4
> parameters.
>
> consider a `From<&UtsName>` implementation.
Hmm I was under the impression that we don't want to pull in any more
crates into `pbs-api-types`...
Another option I had was implement From<[&OsStr; 4] on
KernelVersionInformation?
>> + KernelVersionInformation {
>> + sysname: sysname
>> + .to_os_string()
>> + .into_string()
>> + .unwrap_or("".to_string()),
> .unwrap_or_default(), also, whenver you think "".to_string(), type
> String::new() instead ;-)
>
> also, you first convert to an owned string - this always works, and then
> do the fallible `into_string()`, so even if it's not a valid string you
> clone and discard, instead, do:
> sysname
> .to_str()
> .map(String::from)
> .unwrap_or_default()
>
> this way there's no string copying if it's not valid utf-8 becausee that
> is checked first
>
> same for the cases below
Ohh, thanks for the heads up!
next prev parent reply other threads:[~2023-11-29 12:50 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-29 9:07 [pbs-devel] [PATCH v4 proxmox{, -backup} 0/5] Add boot_mode, improve kernel version Gabriel Goller
2023-11-29 9:07 ` [pbs-devel] [PATCH v4 proxmox 1/5] sys: add helper to get bootmode and secureboot status Gabriel Goller
2023-11-29 10:13 ` Wolfgang Bumiller
2023-11-29 9:07 ` [pbs-devel] [PATCH v4 proxmox-backup 2/5] node: status: added bootmode Gabriel Goller
2023-11-29 10:18 ` Wolfgang Bumiller
2023-11-29 12:44 ` Gabriel Goller
2023-11-29 9:07 ` [pbs-devel] [PATCH v4 proxmox-backup 3/5] ui: dashboard: show the bootmode Gabriel Goller
2023-11-29 9:07 ` [pbs-devel] [PATCH v4 proxmox-backup 4/5] node: status: declutter kernel-version Gabriel Goller
2023-11-29 10:23 ` Wolfgang Bumiller
2023-11-29 12:50 ` Gabriel Goller [this message]
2023-11-29 13:05 ` Wolfgang Bumiller
2023-11-29 9:07 ` [pbs-devel] [PATCH v4 proxmox-backup 5/5] ui: dashboard: nicely display kernel version Gabriel Goller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=860129ad-64b5-44b2-bb05-bf6f6fa3272a@proxmox.com \
--to=g.goller@proxmox.com \
--cc=pbs-devel@lists.proxmox.com \
--cc=w.bumiller@proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.