std_tools 0.1.4

Collection of general purpose tools for solving problems. Fundamentally extend the language without spoiling, so may be used solely or in conjunction with another module of such kind.
Documentation

use super::*;
use wca::string::parse_request::OpType::{ Primitive, Vector }; // qqq : this line should be ok

//

tests_impls!
{
  fn basic()
  {
    let instruction = wca::instruction::instruction_parse()
    .instruction( "" )
    .perform();
    let exp = wca::instruction::Instruction
    {
      err : Some( wtools::error::BasicError::new( "Invalid command" ) ),
      command_name : "".to_string(),
      subject : "".to_string(),
      properties_map : HashMap::new(),
    };
    a_id!( instruction, exp );

    let instruction = wca::instruction::instruction_parse()
    .instruction( ".get" )
    .perform();
    let exp = wca::instruction::Instruction
    {
      err : None,
      command_name : ".get".to_string(),
      subject : "".to_string(),
      properties_map : HashMap::new(),
    };
    a_id!( instruction, exp );

    let instruction = wca::instruction::instruction_parse()
    .instruction( ".get some" )
    .perform();
    let exp = wca::instruction::Instruction
    {
      err : None,
      command_name : ".get".to_string(),
      subject : "some".to_string(),
      properties_map : HashMap::new(),
    };
    a_id!( instruction, exp );

    let instruction = wca::instruction::instruction_parse()
    .instruction( ".get v:1" )
    .perform();
    let exp = wca::instruction::Instruction
    {
      err : None,
      command_name : ".get".to_string(),
      subject : "".to_string(),
      properties_map : HashMap::from([ ( "v".to_string(), Primitive( "1".to_string() ) ) ]),
    };
    a_id!( instruction, exp );

    let instruction = wca::instruction::instruction_parse()
    .instruction( ".get some v:1" )
    .perform();
    let exp = wca::instruction::Instruction
    {
      err : None,
      command_name : ".get".to_string(),
      subject : "some".to_string(),
      properties_map : HashMap::from([ ( "v".to_string(), Primitive( "1".to_string() ) ) ]),
    };
    a_id!( instruction, exp );

    let instruction = wca::instruction::instruction_parse()
    .instruction( ".get some v:1 routine:some" )
    .perform();
    let properties_map = HashMap::from
    ([
      ( "v".to_string(), Primitive( "1".to_string() ) ),
      ( "routine".to_string(), Primitive( "some".to_string() ) ),
    ]);
    let exp = wca::instruction::Instruction
    {
      err : None,
      command_name : ".get".to_string(),
      subject : "some".to_string(),
      properties_map,
    };
    a_id!( instruction, exp );

    /* */

    let aggregator_map = HashMap::new();
    let instruction = wca::instruction::instruction_parse()
    .instruction( ".get some v:1 routine:some" )
    .properties_map( aggregator_map )
    .perform();
    let properties_map = HashMap::from
    ([
      ( "v".to_string(), Primitive( "1".to_string() ) ),
      ( "routine".to_string(), Primitive( "some".to_string() ) ),
    ]);
    let exp = wca::instruction::Instruction
    {
      err : None,
      command_name : ".get".to_string(),
      subject : "some".to_string(),
      properties_map,
    };
    a_id!( instruction, exp );

    let mut aggregator_map = HashMap::new();
    aggregator_map.insert( "ne".to_string(), Primitive( "-2".to_string() ) );
    let instruction = wca::instruction::instruction_parse()
    .instruction( ".get some v:1 routine:some" )
    .properties_map( aggregator_map )
    .perform();
    let properties_map = HashMap::from
    ([
      ( "v".to_string(), Primitive( "1".to_string() ) ),
      ( "routine".to_string(), Primitive( "some".to_string() ) ),
      ( "ne".to_string(), Primitive( "-2".to_string() ) ),
    ]);
    let exp = wca::instruction::Instruction
    {
      err : None,
      command_name : ".get".to_string(),
      subject : "some".to_string(),
      properties_map,
    };
    a_id!( instruction, exp );
  }

  //

  fn with_several_values()
  {
    let instruction = wca::instruction::instruction_parse()
    .instruction( ".get some v:1 v:2" )
    .several_values( false )
    .perform();
    let exp = wca::instruction::Instruction
    {
      err : None,
      command_name : ".get".to_string(),
      subject : "some".to_string(),
      properties_map : HashMap::from([ ( "v".to_string(), Primitive( "2".to_string() ) ) ]),
    };
    a_id!( instruction, exp );

    let instruction = wca::instruction::instruction_parse()
    .instruction( ".get some v:[1,2]" )
    .several_values( false )
    .perform();
    let exp = wca::instruction::Instruction
    {
      err : None,
      command_name : ".get".to_string(),
      subject : "some".to_string(),
      properties_map : HashMap::from([ ( "v".to_string(), Vector( vec![ "1".to_string(), "2".to_string() ] ) ) ]),
    };
    a_id!( instruction, exp );

    /* */

    let instruction = wca::instruction::instruction_parse()
    .instruction( ".get some v:1 v:2" )
    .several_values( true )
    .perform();
    let exp = wca::instruction::Instruction
    {
      err : None,
      command_name : ".get".to_string(),
      subject : "some".to_string(),
      properties_map : HashMap::from([ ( "v".to_string(), Vector( vec![ "1".to_string(), "2".to_string() ] ) ) ]),
    };
    a_id!( instruction, exp );

    let instruction = wca::instruction::instruction_parse()
    .instruction( ".get some v:[1,2]" )
    .several_values( true )
    .perform();
    let exp = wca::instruction::Instruction
    {
      err : None,
      command_name : ".get".to_string(),
      subject : "some".to_string(),
      properties_map : HashMap::from([ ( "v".to_string(), Vector( vec![ "1".to_string(), "2".to_string() ] ) ) ]),
    };
    a_id!( instruction, exp );

    /* */

    let instruction = wca::instruction::instruction_parse()
    .instruction( ".get some v:[1,2] v:3" )
    .several_values( true )
    .perform();
    let exp = wca::instruction::Instruction
    {
      err : None,
      command_name : ".get".to_string(),
      subject : "some".to_string(),
      properties_map : HashMap::from([ ( "v".to_string(), Vector( vec![ "1".to_string(), "2".to_string(), "3".to_string() ] ) ) ]),
    };
    a_id!( instruction, exp );

    let instruction = wca::instruction::instruction_parse()
    .instruction( ".get some v:3 v:[1,2]" )
    .several_values( true )
    .perform();
    let exp = wca::instruction::Instruction
    {
      err : None,
      command_name : ".get".to_string(),
      subject : "some".to_string(),
      properties_map : HashMap::from([ ( "v".to_string(), Vector( vec![ "3".to_string(), "1".to_string(), "2".to_string() ] ) ) ]),
    };
    a_id!( instruction, exp );
  }
}

//

tests_index!
{
  basic,
  with_several_values,
}