This way we can copy and modify a schema.
Eg. via the following ways:
const FOO_SCHEMA: Schema = SOME_SCHEMA
.unwrap_integer_schema_cloned()
.description("Foo")
.schema();
Note that for example there is currently no builder to set a
`default_key` for an `ObjectSchema` back to None, so one could do:
const FOO_SCHEMA: Schema = const {
let mut schema = SOME_SCHEMA.unwrap_object_schema_cloned();
schema.default_key = None;
schema.schema()
};
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Because the UI kept producing them...
And still does...
This is NOT meant to be used by anything other than generated legacy
code for PDM (pve-api-types) and only affects the serde based
deserializer. The "old" `schema.parse_property_string() -> Value`
method does not utilize this for now.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
To prepare for a breaking change in proxmox-schema.
Since new fields in the schema constitute a breaking change, using the
builder methods will let this compile later as well.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
so that we can have a property:
```
foo: Option<PropertyString<Bar>>,
```
within a struct that derives `Updater`
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
We tried this unconditionally on start-up in the PDM for the priv. API
daemon, but we actually only want to clean-up on fresh bind, not on
restoring the FD on daemon reload. Otherwise the unprivileged daemon
cannot connect to the privileged one anymore after the latter got
reloaded.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
For consistency with it's other repositories, we might migrate other
products also to this schema with a future major release (and nginx
rewrite config for backward compatibility)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Migrated from `log` to `tracing`. Imported `tracing` only as it has a
smaller footprint (and less dependencies) than `proxmox_log`.
Signed-off-by: Gabriel Goller <g.goller@proxmox.com>
Reviewed-by: Lukas Wagner <l.wagner@proxmox.com>
with edition 2024 `static mut` references will be disallowed [1]. the
recommended way to work around this is to use inner mutability, so use a
`OnceLock` for the `PRODUCT_CONFIG` as that should not change throughout
the run time of an application.
[1]:
https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html
Signed-off-by: Shannon Sterz <s.sterz@proxmox.com>
in edition 2024 references to mutable static will be disallowed [1]. the
recommended way around this is to use types with inner mutability. so
use a `OnceLock` for `ACME_ACME_CONFIG` as the directoryfor ACME
configuration purposes shouldn't change throughout the run time of an
application.
[1]:
https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html
Signed-off-by: Shannon Sterz <s.sterz@proxmox.com>
Fixes the manual_flatten clippy lint:
```
warning: unnecessary `if let` since only the `Some` variant of the iterator element is used
--> proxmox-apt/src/repositories/mod.rs:40:5
|
40 | for digest in digests.values() {
| ^ ---------------- help: try: `digests.values().copied().flatten()`
| _____|
| |
41 | | if let Some(digest) = digest {
42 | | common_raw.extend_from_slice(&digest[..]);
43 | | }
44 | | }
| |_____^
|
help: ...and remove the `if let` statement in the for loop
--> proxmox-apt/src/repositories/mod.rs:41:9
|
41 | / if let Some(digest) = digest {
42 | | common_raw.extend_from_slice(&digest[..]);
43 | | }
| |_________^
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten
= note: `#[warn(clippy::manual_flatten)]` on by default
```
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
FG: use `into_values().flatten()` instead of `values().copied().flatten()
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Fixes the clippy lint:
```
warning: empty line after outer attribute
--> proxmox-sys/src/systemd.rs:7:1
|
7 | / #[allow(clippy::manual_range_contains)]
8 | |
| |_
9 | fn parse_hex_digit(d: u8) -> Result<u8, Error> {
| ---------------------------------------------- the attribute applies to this function
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_outer_attr
= note: `#[warn(clippy::empty_line_after_outer_attr)]` on by default
= help: if the empty line is unintentional remove it
```
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
Fixes the clippy lints:
```
warning: empty line after doc comment
--> proxmox-lang/src/lib.rs:33:1
|
33 | / /// ```
34 | |
| |_
35 | #[macro_export]
36 | macro_rules! try_block {
| ---------------------- the comment documents this macro
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments
= note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default
= help: if the empty line is unintentional remove it
warning: empty line after doc comment
--> proxmox-router/src/cli/mod.rs:308:5
|
308 | / /// Can be used multiple times.
309 | |
| |_
310 | /// Finish the command line interface.
311 | pub fn build(self) -> CommandLineInterface {
| ------------------------------------------ the comment documents this method
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments
= note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default
= help: if the empty line is unintentional remove it
help: if the documentation should include the empty line include it in the comment
|
309 | ///
|
```
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
Fixes the single_match clippy lint:
```
warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let`
--> proxmox-apt/src/repositories/mod.rs:41:9
|
41 | / match digest {
42 | | Some(digest) => common_raw.extend_from_slice(&digest[..]),
43 | | None => (),
44 | | }
| |_________^ help: try: `if let Some(digest) = digest { common_raw.extend_from_slice(&digest[..]) }`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match
= note: `#[warn(clippy::single_match)]` on by default
```
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>