Skip to main content

State

Trait State 

Source
pub trait State {
    // Required methods
    fn get(&mut self, key: &str) -> Option<Value>;
    fn set(&mut self, key: &str, value: Value, ttl: Option<u64>) -> bool;
    fn delete(&mut self, key: &str) -> bool;
    fn exists(&mut self, key: &str) -> bool;
}
Expand description

State - 統一CRUD実装

manifest の _state/_store/_load に従って状態を管理する。 state-engineの唯一の外部向けインターフェース。

Required Methods§

Source

fn get(&mut self, key: &str) -> Option<Value>

状態を取得

  1. _store から値を取得
  2. miss時は _load に従い自動ロード
  3. ロード成功時は _store に保存して返却
§Arguments
  • key - manifest key (“filename.node.field”)
§Returns
  • Some(Value) - 値が存在する場合
  • None - 値が存在せず、ロードも失敗した場合
Source

fn set(&mut self, key: &str, value: Value, ttl: Option<u64>) -> bool

状態を設定

_store に従って値を保存する。

§Arguments
  • key - manifest key (“filename.node.field”)
  • value - 保存する値
  • ttl - TTL(秒)。KVS使用時のみ有効。Noneの場合はYAML定義に従う
§Returns
  • true - 保存成功
  • false - 保存失敗
Source

fn delete(&mut self, key: &str) -> bool

状態を削除

_store から該当の {key:value} レコードを削除する。

§Arguments
  • key - manifest key (“filename.node.field”)
§Returns
  • true - 削除成功
  • false - 削除失敗またはキーが存在しない
Source

fn exists(&mut self, key: &str) -> bool

キーの存在確認(自動ロードなし)

get()と異なり、自動ロードをトリガーしない。 キャッシュとストアのみをチェックする。

§Arguments
  • key - manifest key (“filename.node.field”)
§Returns
  • true - キーが存在する(キャッシュまたはストアに存在)
  • false - キーが存在しない

Implementors§

Source§

impl<'a> State for State<'a>