pub struct MetaProperties {
pub cluster_id: ClusterId,
pub node_id: i32,
pub directory_id: Option<DirectoryId>,
}Expand description
The content of a version 1 meta.properties.
Kafka’s MetaProperties keeps the cluster id as a string. krabka keeps it
as 16 bytes, so a cluster id that is not a Kafka Uuid does not read.
The node id is Kafka’s int. The directory id is optional when the file
is read, as in Kafka: a broker gives a directory without one an id at its
next start.
Fields§
§cluster_id: ClusterIdThe cluster that the directory belongs to.
node_id: i32The node that the directory belongs to, Kafka’s node.id.
directory_id: Option<DirectoryId>The directory’s own id (KIP-858).
Implementations§
Source§impl MetaProperties
impl MetaProperties
Sourcepub fn read(dir: &Path) -> Result<Option<Self>, MetaPropertiesError>
pub fn read(dir: &Path) -> Result<Option<Self>, MetaPropertiesError>
Reads <dir>/meta.properties. Returns None when there is no such
file, which is how Kafka’s MetaPropertiesEnsemble.Loader finds an
empty directory.
§Errors
Returns MetaPropertiesError::Io when the file is there but cannot
be read, and another variant when it does not parse.
Sourcepub fn parse(bytes: &[u8]) -> Result<Self, MetaPropertiesError>
pub fn parse(bytes: &[u8]) -> Result<Self, MetaPropertiesError>
Parses the bytes of a meta.properties, as Kafka’s
new MetaProperties.Builder(props).build() does after
Properties.load.
The checks run in Kafka’s order, so a file with several faults is reported with Kafka’s first message.
§Errors
Returns the MetaPropertiesError for the first fault.
Sourcepub fn to_file_text(&self, now: SystemTime) -> String
pub fn to_file_text(&self, now: SystemTime) -> String
The text of the file that Kafka’s writePropertiesFile writes for
these ids at now, with now in UTC.
No value needs an escape: a node id is digits and a sign, and Kafka’s
Uuid form uses only letters, digits, - and _, which
Properties.store writes as they are.
Sourcepub fn write(&self, dir: &Path) -> Result<()>
pub fn write(&self, dir: &Path) -> Result<()>
Writes <dir>/meta.properties as Kafka’s writePropertiesFile does
with fsync set: the text goes to meta.properties.tmp, which is
synced and renamed into place, and then, on Unix, the directory is
synced. A write that stops partway therefore never leaves a truncated
file.
§Errors
Returns the first I/O error. A rename that fails removes the temporary file, as Kafka does.
Trait Implementations§
Source§impl Clone for MetaProperties
impl Clone for MetaProperties
Source§fn clone(&self) -> MetaProperties
fn clone(&self) -> MetaProperties
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for MetaProperties
Source§impl Debug for MetaProperties
impl Debug for MetaProperties
impl Eq for MetaProperties
Source§impl PartialEq for MetaProperties
impl PartialEq for MetaProperties
impl StructuralPartialEq for MetaProperties
Auto Trait Implementations§
impl Freeze for MetaProperties
impl RefUnwindSafe for MetaProperties
impl Send for MetaProperties
impl Sync for MetaProperties
impl Unpin for MetaProperties
impl UnsafeUnpin for MetaProperties
impl UnwindSafe for MetaProperties
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
impl<F> FnGhost for F
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling [Attribute] value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi [Quirk] value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the [Condition] value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);