pub struct VersionBuilder { /* private fields */ }Expand description
Builder for creating Version programmatically.
This builder allows you to construct version strings when building DBC files programmatically. You can either specify a complete version string or build it incrementally using semantic version components.
§Examples
use dbc_rs::VersionBuilder;
// Direct version string
let version = VersionBuilder::new().version("1.0").build()?;
// Semantic versioning
let version2 = VersionBuilder::new()
.major(1)
.minor(2)
.patch(3)
.build()?;
assert_eq!(version2.as_str(), "1.2.3");§Feature Requirements
This builder requires the alloc feature to be enabled.
Implementations§
Source§impl VersionBuilder
impl VersionBuilder
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new VersionBuilder with no version set.
§Examples
use dbc_rs::VersionBuilder;
let builder = VersionBuilder::new();
// Must set version before building
let version = builder.version("1.0").build()?;Sourcepub fn version(self, version: &str) -> Self
pub fn version(self, version: &str) -> Self
Sets the complete version string.
This method overrides any previously set version components (major, minor, patch).
§Arguments
version- The complete version string (e.g., “1.0”, “1.2.3”, “1.0-beta”)
§Examples
use dbc_rs::VersionBuilder;
let version = VersionBuilder::new()
.version("1.2.3")
.build()?;
assert_eq!(version.as_str(), "1.2.3");
// Overrides previous components
let version2 = VersionBuilder::new()
.major(1)
.minor(2)
.version("3.0") // Overrides previous
.build()?;
assert_eq!(version2.as_str(), "3.0");Sourcepub fn major(self, major: u8) -> Self
pub fn major(self, major: u8) -> Self
Sets the major version number.
If minor() or patch() are called after this, they will append to the version string.
If version() is called after this, it will override this value.
§Arguments
major- The major version number (0-255)
§Examples
use dbc_rs::VersionBuilder;
let version = VersionBuilder::new()
.major(1)
.build()?;
assert_eq!(version.as_str(), "1");
// Combine with minor and patch
let version2 = VersionBuilder::new()
.major(1)
.minor(2)
.patch(3)
.build()?;
assert_eq!(version2.as_str(), "1.2.3");Sourcepub fn minor(self, minor: u8) -> Self
pub fn minor(self, minor: u8) -> Self
Sets the minor version number.
If a version string already exists (from major() or version()), this appends
the minor version. Otherwise, it creates a new version string with just the minor number.
§Arguments
minor- The minor version number (0-255)
§Examples
use dbc_rs::VersionBuilder;
// With major
let version = VersionBuilder::new()
.major(1)
.minor(2)
.build()?;
assert_eq!(version.as_str(), "1.2");
// Without major (creates version "2")
let version2 = VersionBuilder::new()
.minor(2)
.build()?;
assert_eq!(version2.as_str(), "2");Sourcepub fn patch(self, patch: u8) -> Self
pub fn patch(self, patch: u8) -> Self
Sets the patch version number.
If a version string already exists (from major(), minor(), or version()),
this appends the patch version. Otherwise, it creates a new version string with
just the patch number.
§Arguments
patch- The patch version number (0-255)
§Examples
use dbc_rs::VersionBuilder;
// Full semantic version
let version = VersionBuilder::new()
.major(1)
.minor(2)
.patch(3)
.build()?;
assert_eq!(version.as_str(), "1.2.3");
// Without major/minor (creates version "3")
let version2 = VersionBuilder::new()
.patch(3)
.build()?;
assert_eq!(version2.as_str(), "3");Sourcepub fn build(self) -> Result<Version<'static>>
pub fn build(self) -> Result<Version<'static>>
Builds the Version from the builder configuration.
This validates that a version has been set and constructs a Version instance
with static lifetime.
§Returns
Returns Ok(Version) if successful, or Err(Error::Version) if:
- No version has been set (empty version)
§Examples
use dbc_rs::VersionBuilder;
// Build with version string
let version = VersionBuilder::new()
.version("1.0")
.build()?;
assert_eq!(version.as_str(), "1.0");
// Build with semantic versioning
let version2 = VersionBuilder::new()
.major(1)
.minor(2)
.patch(3)
.build()?;
assert_eq!(version2.as_str(), "1.2.3");§Errors
use dbc_rs::VersionBuilder;
// Missing version
let result = VersionBuilder::new().build();
assert!(result.is_err());
// Empty string is allowed
let version = VersionBuilder::new().version("").build()?;
assert_eq!(version.as_str(), "");